1 / 10

OpenFlow Plugin

OpenFlow Plugin. Experimenter Framework Ericsson AB. Background. Openflow specification defines Experimenter a s the way of allowing vendor defined extensions to action and match fields.

Télécharger la présentation

OpenFlow Plugin

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. OpenFlow Plugin Experimenter Framework Ericsson AB

  2. Background • Openflow specification defines Experimenter as the way of allowing vendor defined extensions to action and match fields. • OpenDaylight needs a experimenter framework defined, which will allow end user to plugin there extension seamlessly. • The framework should be flexible enough and not mandate the end user to submit the code back as per ODL licensing T & C. • This framework will span across MD-SAL, Openflowplugin and Openflowjava modules.

  3. MD-SAL : Yang Model Experimenter Support

  4. Yang augmentation • Yang model needs to be augmented to support vendor defined experimenter action and matches. • Pushed couple of review for sample action augmentation • https://git.opendaylight.org/gerrit/#/c/7976/ • This gerrit needs to be pushed in. • This will allow augmentation to existing action types. • https://git.opendaylight.org/gerrit/#/c/7978/ • This gerrit will give an example on how to augment the action. • This gerrit will not be pushed into ODL.

  5. Augmenting the YANG model

  6. YANG : Action Augmentation Example module opendaylight-action-types { container action-types{ uses action-list; } grouping action-list { list action { key "order"; leaf order { type int32; } uses action; } } grouping action { choiceaction{ case output-action-case { container output-action { leaf output-node-connector { type inet:uri; } leaf max-length { type uint16; } } } } } } module experimenter-action-types { namespace "urn:ericsson:experimenter:action:types"; prefix experimenter-action-type; import opendaylight-action-types {prefix ofaction;revision-date "2013-11-12";} import yang-ext {prefix ext; revision-date "2013-07-09";} revision "2014-02-28" { description "Initial revision of experimenter action types augments"; } grouping new-action-group { leaf eth-type { type uint16; } } augment "/ofaction:action-types/ofaction:action/ofaction:action" { ext:augment-identifier "experimenter-action-type"; case experimenter-action-type { choice action-type { case new-xyz-action { uses new-action-group; } } } }

  7. OpenFlow Plugin Experimenter Support

  8. Overview • Plugin needs experimentation support in 2 use cases • Messages sent from North to south like Add/Delete/update flow/groups/meters etc. • While processing messages coming from Switch like Statistics replies. • So converters and translators in plugin need to be extended to support experimenter messages. • But these experimenter messages processing should happen outside plugin bundle(say “PluginExperimenter”) since • Vendors can handle extensions without breaking the ODL license. • No overhead of maintenance over period of time like merging the code in future since we do not accept Vendors to submit back there extensions to ODL community. • If Vendors embed there code in plugin than maintenance will be overhead. • So in plugin converter and translator code whenever plugin hits the message type ”experimenter” plugin makes a function call outside the plugin bundle(PluginExperimenter) to process / decode the experimenter message. This would be normal function call. • Once the experimenter code is processed the converter and translator code will take the usual path again. • So plugin will have reference to external bundle (pluginExperimenter).

  9. Openflow Plugin Bundle Experimenter Bundle Flow Convertor Match Convertor Experimenter Match Convertor Action Convertor Experimenter Action Convertor Group Convertor Plugin: Experimenter Support

  10. Thanks Manohar SL Gaurav Bhagwani Srikar R Prasanna Huddar

More Related