Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Floodlightのモジュール機構
Search
Sho Shimizu
April 29, 2012
Technology
1
390
Floodlightのモジュール機構
sdnstudy OpenFlow勉強会 その2で発表した資料
Sho Shimizu
April 29, 2012
Tweet
Share
More Decks by Sho Shimizu
See All by Sho Shimizu
OpenFlowとは何か
oshothebig
2
140
OpenFlowコントローラとその実装
oshothebig
1
130
OpenFlowコントローラを取り巻く状況とその実装
oshothebig
1
99
Open vSwitch ソースコードの全体像
oshothebig
1
240
Other Decks in Technology
See All in Technology
事業価値と Engineering
recruitengineers
PRO
8
5.4k
AWS環境のリソース調査を Claude Code で効率化 / aws investigate with cc devio2025
masahirokawahara
2
1.1k
JavaScript 研修
recruitengineers
PRO
6
1.4k
データアナリストからアナリティクスエンジニアになった話
hiyokko_data
2
330
Webブラウザ向け動画配信プレイヤーの 大規模リプレイスから得た知見と学び
yud0uhu
0
170
AWSで推進するデータマネジメント
kawanago
0
880
新規案件の立ち上げ専門チームから見たAI駆動開発の始め方
shuyakinjo
0
650
AI エージェントとはそもそも何か? - 技術背景から Amazon Bedrock AgentCore での実装まで- / AI Agent Unicorn Day 2025
hariby
3
590
生成AI時代のデータ基盤
shibuiwilliam
4
2.6k
異業種出身エンジニアが気づいた、転向して十数年経っても変わらない自分の武器とは
macnekoayu
0
270
生成AI時代に必要な価値ある意思決定を育てる「開発プロセス定義」を用いた中期戦略
kakehashi
PRO
1
250
ヒューリスティック評価を用いたゲームQA実践事例
gree_tech
PRO
0
440
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
BBQ
matthewcrist
89
9.8k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
The Straight Up "How To Draw Better" Workshop
denniskardys
236
140k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Fireside Chat
paigeccino
39
3.6k
Testing 201, or: Great Expectations
jmmastey
45
7.6k
How to Think Like a Performance Engineer
csswizardry
26
1.9k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
910
Raft: Consensus for Rubyists
vanstee
140
7.1k
Transcript
FloodlightͷϞδϡʔϧػߏ ਗ਼ਫɹᠳ @oshothebig
ࣗݾհ • ਗ਼ਫɹᠳ • @oshothebig • ࣄɿωοτϫʔΫͷݚڀ • झຯɿࣗసं •
ϩʔυϨʔαʔʹΔ • ࢼ߹Λݟʹߦ͘
Floodlight • Big Switch Networks͕ࣾΦʔϓϯιʔεͰ։ൃ͢Δ OpenFlowίϯτϩʔϥ • Web: http://floodlight.openflowhub.org/ •
Source: http://github.com/floodlight/floodlight • Open SDN • Apache License ver. 2.0
Getting started $ sudo apt-get install build-essential default-jdk ant python-dev
$ git clone git://github.com/floodlight/floodlight.git $ cd floodlight; ant $ java -jar target/floodlight.jar
None
ػೳ • API • Java (Event driven) • REST (RestletͰ֦ுՄೳ)
• Topology discovery • Device manager • Static flow pusher • etc. ϞδϡʔϧػߏΛ ࣮ͬͯ
Ϟδϡʔϧػߏʁ
ੜཱ͍ͪ • FloodlightBeacon͔ΒϑΥʔΫͨ͠ϓϩδΣΫτ • Beacon • Developed by David Erickson
• http://www.beaconcontroller.net/ • GPL v2 and the Stanford University FOSS License Exception v1.0 • 201112݄ޙɿFloodlightͷίʔυެ։
Beaconʹ͋ͬͯ Floodlightʹແ͍ͷʁ
Beaconʹ͋ͬͯ Floodlightʹແ͍ͷʁ Ϟδϡʔϧػߏ
Beacon uses OSGi by Spring Framework
XMLϑΝΠϧ͍ͬͺ͍
XMLͷઃఆΛϛε͢Δͱ ϥϯλΠϜΤϥʔ
ҙຯෆ໌ͳ͙Β͍େྔͷ ελοΫτϨʔεग़ྗ
͋͛͘
νϡʔτϦΞϧͷઃఆ ϑΝΠϧྫ͕ؒҧ͍ͬͯͨ ͋͛͘
Floodlight
OSGiͷ༻ΛΊͨ Floodlight
ػೳͷՃ
Controller.javaΛฤू & ίϯύΠϧ
͍͚ͯͳ͍
Ϟδϡʔϧػߏ͕ ࠷༏ઌࣄ߲ͩΑ! Alex Reimers
2012/2/20? Ϟδϡʔϧػߏ෮׆
ΞʔΩςΫνϟ FloodlightProvider Ϟδϡʔϧ 1 Ϟδϡʔϧ 2 Ϟδϡʔϧ 3 Ϟδϡʔϧ N
Ϟδϡʔϧ • ػೳ͕ϩʔυ͞ΕΔ୯Ґ • IFloodlightModuleΠϯλʔϑΣΠε • αʔϏεΛ֎෦ͷϞδϡʔϧʹެ։ • αʔϏεɿػೳΛ֎෦ʹެ։͢Δ୯Ґ •
ެ։͠ͳͯ͘Α͍ • ଞͷαʔϏεʹґଘ͢Δ͜ͱ͋Δ • ϞδϡʔϧϩʔμʹΑͬͯϩʔυ࣌ʹґଘੑղܾ
Service A Service B Module A Service C Module B
use
IFloodlightModule ϝιου໊ આ໌ getModuleDependencies() ґଘαʔϏεΛฦ͢ getModuleService() ެ։͢ΔαʔϏεΛฦ͢ getServiceImpls() ެ։αʔϏεͷ࣮Λฦ͢ init(FloodlightModuleContext)
ϞδϡʔϧͷॳظԽ startup(FloodlightModuleContext) ϞδϡʔϧͷॳظԽ
αʔϏε • IFloodlightServiceΛܧঝͨ͠ΠϯλʔϑΣΠε • ϚʔΧʔΠϯλʔϑΣΠε • σϑΥϧτͰఴ͞Ε͍ͯΔͷ • ITopologyService, IDeviceManagerService,
etc... • ఴͷαʔϏεͰɺIFloodlightModuleͱ IFloodlightServiceΛಉҰΫϥεͰ࣮͍ͯ͠Δ
ϞδϡʔϧͷΈ 1. FloodlightModuleLoader͕ઃఆϑΝΠϧΛಡΈࠐΉ • ίϚϯυϥΠϯ(-cf)Ͱࢦఆͨ͠ϑΝΠϧ • config/floodlight.properties • Ϧιʔεதͷfloodlightdefault.properties 2.
IFloodlightModuleΛ࣮͢ΔΫϥεΛϩʔυ • ServiceLoader#load()Λ༻
ϞδϡʔϧͷΈ 3. ϞδϡʔϧͷґଘάϥϑΛ࡞ 4. ֤ϞδϡʔϧͷinitϝιουΛݺͼग़͠ • ґଘ͢ΔαʔϏεॳظԽ͞Ε͍ͯͳ͍Մೳੑ͕ ͋Δ 5. ֤ϞδϡʔϧͷstartUpϝιουΛݺͼग़͠
• શͯͷαʔϏεͷΠϯελϯε͕ଘࡏ͍ͯ͠Δ
Ϟδϡʔϧͷ࡞Γํ • IFloodlightModuleΛ࣮ͨ͠ΫϥεΛ࡞ • ඞཁʹԠͯ͡IFloodlightServiceΛ࣮ • src/main/resources/META-INF/services/ net.floodlight.core.module.IFloodlightModuleʹϞ δϡʔϧͷશम০Ϋϥε໊Λهड़ •
ઃఆϑΝΠϧʹಡΈࠐΉϞδϡʔϧͷશम০Ϋϥε ໊Λهड़ • floodlight.modules = xxx, yyy, zzz
αϯϓϧΛ༻͍ͨৄ͍͠આ໌ɺ http://floodlight.openflowhub.org/developing-floodlight/ Λࢀর
• Google Summer of Code 2012 • ͍ΖΜͳֶੜ͕MLʹ࣭Λ͛ͯML͕׆ൃԽ • Web
front end, Firewall, Load balancer, etc... • IBM (Research?)ͷਓ • Web UIΛՃ→Pull request→ຊମʹϚʔδ • Ϟδϡʔϧϩʔμʔͷόάमਖ਼ • Ṗͷyetiϒϥϯν ࠷ۙͷ
͓·͚ • ֎෦ͷϥΠϒϥϦΛ͍͍ͨ߹ɺϥΠϒϥϦͷਪ ҠతґଘؔͷѲ͕໘
͓·͚ • ֎෦ͷϥΠϒϥϦΛ͍͍ͨ߹ɺϥΠϒϥϦͷਪ ҠతґଘؔͷѲ͕໘ Mavenize http://github.com/oshothebig/floodlight/tree/develop
ศ
5݄5 nicira-ext.hΛಡΉձ http://www.zusaar.com/ event/277002
͓ΘΓ