openflow plugin
DESCRIPTION
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. - PowerPoint PPT PresentationTRANSCRIPT
www.opendaylight.org
OpenFlow Plugin
Experimenter Framework
Ericsson AB
www.opendaylight.org
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.
Background
2
www.opendaylight.org
MD-SAL : Yang Model
Experimenter Support
3
www.opendaylight.org
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.
Yang augmentation
4
www.opendaylight.org
Augmenting the YANG model
5
www.opendaylight.org
YANG : Action Augmentation Example
6
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 { choice action { 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;
}
}
}
}
www.opendaylight.org
OpenFlow Plugin
Experimenter Support
7
www.opendaylight.org
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).
Overview
8
www.opendaylight.org
Plugin: Experimenter Support
9
Experimenter BundleOpenflow Plugin Bundle
Flow Convertor
Group Convertor
Match Convertor
Action Convertor
Experimenter Match Convertor
Experimenter Action Convertor
www.opendaylight.org
Thanks
Manohar SLGaurav BhagwaniSrikar RPrasanna Huddar