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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Sho Shimizu
April 29, 2012
Technology
390
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Floodlightのモジュール機構
sdnstudy OpenFlow勉強会 その2で発表した資料
Sho Shimizu
April 29, 2012
More Decks by Sho Shimizu
See All by Sho Shimizu
OpenFlowとは何か
oshothebig
2
140
OpenFlowコントローラとその実装
oshothebig
1
130
OpenFlowコントローラを取り巻く状況とその実装
oshothebig
1
100
Open vSwitch ソースコードの全体像
oshothebig
1
240
Other Decks in Technology
See All in Technology
【GCC2026】鉄拳8でのVFX開発事例
bandainamcostudios
PRO
0
120
医療の現場を変革に挑戦した半年間の軌跡 - PythonとAIで現場を変える / From Code to Care
soudai
PRO
0
360
Genie Codeハンズオン応用編
taka_aki
0
130
DatadogのBits Chatが開発組織にもたらしたもの / What Bits Chat Has Brought Us
sms_tech
1
290
Digitization部 紹介資料
sansan33
PRO
2
7.7k
LLM Internals: 언어 모델의 계보와 알고리즘 진화 (2023~2026)
inureyes
PRO
1
800
Software Supply Chain Attackからクラウド環境を守るためにできること
lhazy
2
290
Bits Agent Builder の⼊⾨と活⽤事例
nulabinc
PRO
0
250
Oracle MCP Servers Explained
thatjeffsmith
0
300
なぜ Temporal の大小比較には compare しかないのか / Why Does Temporal Only Have compare() for Comparisons
kazukihayase
1
180
AIコーディングの次。コードレビューと理解負荷を解消して組織の開発生産性を高める
moongift
PRO
2
2.7k
AI時代に、人は何を、どう学ぶのか #pbl_pub / What and How Do We Learn in the AI Era?
takaking22
1
180
Featured
See All Featured
Color Theory Basics | Prateek | Gurzu
gurzu
0
430
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.1k
Automating Front-end Workflow
addyosmani
1369
210k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
700
The Language of Interfaces
destraynor
162
27k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
350
Deep Space Network (abreviated)
tonyrice
0
260
The agentic SEO stack - context over prompts
schlessera
0
870
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
How GitHub (no longer) Works
holman
316
150k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
73
41k
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
͓ΘΓ