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

Back to top button