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
380
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
95
Open vSwitch ソースコードの全体像
oshothebig
1
230
Other Decks in Technology
See All in Technology
B2B SaaSから見た最近のC#/.NETの進化
sansantech
PRO
0
880
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
950
Flutterによる 効率的なAndroid・iOS・Webアプリケーション開発の事例
recruitengineers
PRO
0
120
10XにおけるData Contractの導入について: Data Contract事例共有会
10xinc
6
660
20241120_JAWS_東京_ランチタイムLT#17_AWS認定全冠の先へ
tsumita
2
300
安心してください、日本語使えますよ―Ubuntu日本語Remix提供休止に寄せて― 2024-11-17
nobutomurata
1
1k
DynamoDB でスロットリングが発生したとき/when_throttling_occurs_in_dynamodb_short
emiki
0
250
[CV勉強会@関東 ECCV2024 読み会] オンラインマッピング x トラッキング MapTracker: Tracking with Strided Memory Fusion for Consistent Vector HD Mapping (Chen+, ECCV24)
abemii
0
220
エンジニア人生の拡張性を高める 「探索型キャリア設計」の提案
tenshoku_draft
1
130
個人でもIAM Identity Centerを使おう!(アクセス管理編)
ryder472
4
230
TypeScript、上達の瞬間
sadnessojisan
46
13k
アジャイルでの品質の進化 Agile in Motion vol.1/20241118 Hiroyuki Sato
shift_evolve
0
170
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
40
2.4k
4 Signs Your Business is Dying
shpigford
180
21k
Building Applications with DynamoDB
mza
90
6.1k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
10 Git Anti Patterns You Should be Aware of
lemiorhan
655
59k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
97
How STYLIGHT went responsive
nonsquared
95
5.2k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Art, The Web, and Tiny UX
lynnandtonic
297
20k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
Being A Developer After 40
akosma
87
590k
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
͓ΘΓ