Ask is moving to Stack Overflow and! Please use the "opendaylight" tag on either of these sites. This site is now in Read-Only mode


Openflow Plugin Extension Development

asked 2014-05-14 20:37:23 -0800

anonymous user


updated 2014-05-14 20:41:35 -0800

Hi all,

<1>. Recently I want to do some extensions on Openflow Plugin 1.3, is it better to create a new Openflow plugin or just do some modifications on the original one?

I've read the guide from this site: However, I do not get any idea where should I start first. Could you please give me some hints?

<2>. Moreover, I have found the YANG models for Openflow Plugin APIs:;a=tree;f=openflow-protocol-api/src/main/yang

I think these Yang Models are used to build "openflowjava", the openflow library. But I don't see any place in ODL "controller" use this library.

And there are two other places where I could find the codes about Openflow: (1) /controller/opendaylight/protocol_plugins/openflow/ (2) /controller/third-party/openflowj/

What are functionality of these two respectively?

Are there any tutorial step-by-step help how to build a new openflow plugin?

<3>. What is the definition of Hard-SAL? Does it mean AD-SAL?


edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2014-05-15 04:30:57 -0800


updated 2014-05-15 04:31:25 -0800

1) If i am getting your question correct, by "creating new openflow plugin" if you mean to make a copy the existing code and then modify it to add your extension, then i would say that's unnecessary. If you use 'git' for managing the code, you can create your own local branch and modify the code. Following URL can give you some direction

2) openflowplugin project has dependency on "openflowjava" library, and it usage it for connection handling and for decoding/encoding of the openflow protocol messages.

/controller/opendaylight/protocol_plugins/openflow/ -- this directory contains AD-SAL based openflowplugin code and /controller/third-party/openflowj/ directory contains the encoding / decoding library code. Both of these source code are part of the AD-SAL based stack of the controller. So to give a clear view, we have two parallel stack

a) AD-SAL based -- and above mentioned directory contains its openflowplugin and openflowjava (encoding/decoding) library. This stack only support openflow 1.0.

b) MD-SAL based -- Openflowplugin project (repo : openflowplugin.git) is MD-SAL based openflow plugin that supports openflow 1.0 and openflow 1.3 both. Openflowjava project (repo : openflowjava.git) is MD-SAL based encoder/decoder library and it supports for openflow protocol as well. In the hydrogen release, to start MD-SAL based stack you have to use -of13 option while starting the controller.

3) Yes, its AD-SAL.

edit flag offensive delete publish link more
Login/Signup to Answer

Question Tools



Asked: 2014-05-14 20:37:23 -0800

Seen: 666 times

Last updated: May 15 '14