OpenFlow Tutorial Theophilus Benson
10 Slides238.00 KB
OpenFlow Tutorial Theophilus Benson
Outline Components in an OpenFlow testbed Setting up a testbed Writing a new component – C components version – Python components version
OpenFlow Components Controller Openflow switches Traffic generators OpenFlow Enabled Switches End host1 End host3 End host2 OpenFlow Controller
Virtual Testbed Directions available online – http://noxrepo.org/manual/using.html#settingup-a-noxnetwork Requirements – Linux system – Qemu – Python – Nox code – Other linux libraries
Testbed Setup Compile Nox code Set up virtual machines Connect topology Start controller – Use appropriate components Connect switches to controller
Writing Components Two languages; c and python – More information found: http://noxrepo.org/manual/app.html Components are stored in src/nox/apps – Separate each component into a distinct directory Component Structure – You must inherit from class Component – You must include a call to the REGISTER COMPONENT macro – You must include the following methods Void configure(const Configuration *) Void install()
Component Paradigm Register for events and specify handlers – register handler eventtype (boost::bind(handling metho d, this, 1)); – register handler Packet in event (boost::bind(&Hub::ha ndler, this, 1)); All work done in handler – Return either CONTINUE or END – NOTE: you can start the controller with a list of components, event get passed from one to the other – Returning CONTINUE means the next component handles the packet – Returning END means no other components handle the packets
Demo Run component in openflow controller Ping from endhost A Should observe printouts in controller’s console
Resources Nox website – http://noxrepo.org OpenFlow Site – http://www.openflowswitch.org/wp/documents
Questions