Floodlight OpenFlow Controller overview

2,295 views

Published on

Floodlight is an Apache-licensed OpenFlow controller.

Published in: Technology, Education
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,295
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
105
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Floodlight OpenFlow Controller overview

  1. 1. Floodlight: A Java-based OpenFlowController Michael Cohen 11/11/11
  2. 2. Floodlight Overview Floodlight is a completely open, free, Apache- licensed Java-based OpenFlow controller.The Floodlight projected emerged fromBeacon, a project created by David Erickson ofStanford.
  3. 3. Why Floodlight?• Java-based (forked from Beacon)• Apache Licensed – A solid foundation for *any* purpose• Pure java (no OSGI know how required) – Eclipse supported but not required• Dead simple to build and run. – “ant” + “java –jar floodlight.jar”• Tested and hardened in real environments – Physical OpenFlow switches and real networks – Code included in a commercial product from Big Switch Networks
  4. 4. Floodlight Programming Model Application • Java Event Listeners for Application Application OpenFlow REST APIs • switch stats events PACKET_IN • counter values PACKET_OUT • static flow add FLOW_MOD /remove FLOW_REMOVED … • Extensible SwitchListener REST APIs Floodlight Controller
  5. 5. Floodlight Architecture REST APIsTopology - Tracks links between hosts andswitches Java ListenersDevice Manager - Tracks devices in the network Learning Static(MACs, IPs, etc.) Hub Switch FlowPusherStorage - Abstraction layer for storing controllerstorage. Memory is used todayCounter Store – Openflow + Floodlight statsRouting / Forwarding – Core engine for Counter Routing / Webstoring, calculating paths and installing flows. Store ForwardWeb - Rest APIs DeviceLearning Switch - Example learning switch Topology Storage Managerapplication. Can replace Routing / ForwardingHub - Example hub application. Can replace Floodlightrouting / forwarding
  6. 6. Example: A Simple Hub (pseudo-code)public class Hub { public void startup() { Add Listener(PACKET_IN); } public void shutdown() { Remove Listener(PACKET_IN); } public Command receive (…) [ Setup OFPP_FLOOD action; Write action to switch socket; return Command.CONTINUE; } public boolean isCallbackOrdering Preqreq(…) { // does anything need to be called before me? return False; }}
  7. 7. Building and Running Floodlight• Build – $ cd openflowj; ant; – $ cd ../floodlight; ant;• Run – java –jar floodlight.jar• That’s all there is to it…
  8. 8. Floodlight Roadmap• Persistent storage• Multi language support• Static Flow Addition / Removal• Richer API layer (both REST and Java event- based)
  9. 9. Interested in Learning More?• Check out the website: – http://floodlight.openflowhub.org• Join the mailing list: – http://groups.google.com/a/openflowhub.org/group/f loodlight-dev/topics – Or just email floodlight-dev@openflowhub.org• Get the code: – http://floodlight.openflowhub.org/display/Floodlight/ Floodlight+Downloads

×