Changes between Version 11 and Version 12 of Internal/OpenFlow/VendorTutorial


Ignore:
Timestamp:
Jan 9, 2013, 5:24:34 PM (11 years ago)
Author:
akoshibe
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Internal/OpenFlow/VendorTutorial

    v11 v12  
    22This tutorial attempts to describe how to use the !OpenFlow vendor message to create custom messages. We first provide an overview of the message structure. We then describe the vendor message implementations found in openflowj, the Java implementations of the !OpenFlow protocol used in Floodlight and !FlowVisor.
    33
    4 We'll mostly use snippets of the Nicira vendor messages, found in org.openflow.vendor.nicira of the Floodlight source, as working examples in this page. The Nicira extensions add !OpenFlow role features, introduced in !OpenFlow v1.2, to the v1.0 protocol used in Floodlight.
     4=== Before Beginning ===
     5Class names are shown in `terminal type`, and methods, in ''italics''. We use the fully qualified names of the classes and packages, as found in Floodlight source. It is best to follow the tutorial with the Floodlight source sitting in front of you - to import the code to Eclipse, follow [http://www.openflowhub.org/display/floodlightcontroller/Installation+Guide these] instructions.   
     6
     7For working examples in this page we'll use snippets of the Nicira vendor messages, found in org.openflow.vendor.nicira of the Floodlight source. The Nicira extensions add !OpenFlow role features, introduced in !OpenFlow v1.2, to the v1.0 protocol used in Floodlight.
    58
    69== Contents ==
     
    3336`OFVendorData` is the Java interface required by any class defining custom vendor data. `OFVendorData` imposes just a few methods on a class implementing it:
    3437 
    35  * getLength() : return length of the data
    36  * readFrom(!ChannelBuffer data, int length) : Read the vendor data from the specified !ChannelBuffer
    37  * writeTo(!ChannelBuffer data) : Write the vendor data to the specified !ChannelBuffer
     38 * ''getLength()'' : return length of the data
     39 * ''readFrom(!ChannelBuffer data, int length)'' : Read the vendor data from the specified !ChannelBuffer
     40 * ''writeTo(!ChannelBuffer data)'' : Write the vendor data to the specified !ChannelBuffer
    3841
    3942These methods are needed for the serialization/deserialization of the message.
     
    301304
    302305== 4. Conclusion == #theend
    303 In this tutorial, we tried to cover the basics of developing custom messages. While this page contains a hoard of information as is, it is assumed that you also want to do something with the messages once you create them. That part delves into module development in Floodlight, and manipulating `OFChannelHandler`. The following links provides information for getting started on these two fronts:
    304 
    305  * Floodlight development: http://www.openflowhub.org/display/floodlightcontroller/For+Developers - a collection of links
    306   * http://groups.google.com/a/openflowhub.org/group/floodlight-dev - floodlight-dev mailing list
    307  * Netty (The networking library used in Floodlight)
    308   * https://netty.io/Documentation/WebHome - the official docs
    309   * http://www.znetdevelopment.com/blogs/2009/04/21/netty-using-handlers/ 
    310   * http://seeallhearall.blogspot.com/2012/06/netty-tutorial-part-15-on-channel.html
     306In this tutorial, we tried to cover the basics of developing custom messages. While this page contains a hoard of information as is, it is assumed that you also want to do something with the messages once you create them. That part delves into service development in Floodlight, and may require manipulating `OFChannelHandler`. The following links provides information on getting started on these two fronts:
     307
     308==== Floodlight development ====
     309 * Developers' Wiki (a collection of links): http://www.openflowhub.org/display/floodlightcontroller/For+Developers
     310 * floodlight-dev mailing list: http://groups.google.com/a/openflowhub.org/group/floodlight-dev
     311
     312==== Netty ====
     313Netty is the networking library used in Floodlight.
     314 * The official docs: https://netty.io/Documentation/WebHome
     315 * A big-picture description: http://www.znetdevelopment.com/blogs/2009/04/21/netty-using-handlers/ 
     316 * A tutorial: http://seeallhearall.blogspot.com/2012/06/netty-tutorial-part-15-on-channel.html
    311317