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
96
Open vSwitch ソースコードの全体像
oshothebig
1
230
Other Decks in Technology
See All in Technology
PHPカンファレンス名古屋-テックリードの経験から学んだ設計の教訓
hayatokudou
2
520
データ資産をシームレスに伝達するためのイベント駆動型アーキテクチャ
kakehashi
PRO
2
640
2025-02-21 ゆるSRE勉強会 Enhancing SRE Using AI
yoshiiryo1
1
440
次世代KYC活動報告 / 20250219-BizDay17-KYC-nextgen
oidfj
0
440
Iceberg Meetup Japan #1 : Iceberg and Databricks
databricksjapan
0
240
システム・ML活用を広げるdbtのデータモデリング / Expanding System & ML Use with dbt Modeling
i125
1
290
TAMとre:Capセキュリティ編 〜拡張脅威検出デモを添えて〜
fujiihda
2
390
速くて安いWebサイトを作る
nishiharatsubasa
15
15k
AIエージェント元年
shukob
0
140
Raycast AI APIを使ってちょっと便利な拡張機能を作ってみた / created-a-handy-extension-using-the-raycast-ai-api
kawamataryo
0
180
ディスプレイ広告(Yahoo!広告・LINE広告)におけるバックエンド開発
lycorptech_jp
PRO
0
160
Potential EM 制度を始めた理由、そして2年後にやめた理由 - EMConf JP 2025
hoyo
2
1.5k
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.1k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
175
52k
Mobile First: as difficult as doing things right
swwweet
223
9.4k
A Philosophy of Restraint
colly
203
16k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
420
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.5k
How GitHub (no longer) Works
holman
314
140k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
Designing Experiences People Love
moore
140
23k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Why Our Code Smells
bkeepers
PRO
336
57k
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
͓ΘΓ