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


Controller and Openflow 1.3

asked 2015-03-26 05:14:24 -0700

leclem gravatar image

updated 2015-03-26 10:06:15 -0700

Hi, I am a beginner in OpenDayLight and I would like to try to modify the controller, especially the routing algorithm.

I tried to make work the version, but this version doesn't support IPV6 (because it doesn't support Openflow 1.3) and IPV6 is crucial to my project. The next option I got was to use the controller, that supports Openflow 1.3. But I have no idea on how to modify controllers features and integrate them in the integration framework. I have the impression that the karaf framework directly downloads the controller from the git, making me unable to modify it, but isn't there a way to bypass this process by, for example, changing the jars files ?

edit retag flag offensive close merge delete


How can you modify the code ,please give an example

wangruxun ( 2015-03-30 20:14:57 -0700 )edit

3 answers

Sort by ยป oldest newest most voted

answered 2015-03-26 16:17:53 -0700


The Integration code base will try to pull from your local ~/.m2/ if the files aren't found it will get them from the public system. The Integration code base is mainly used to pull in all the project that OpenDaylight has and uses.

So if you pull the controller down then build locally it will store the built files in the ~/.m2/ then once you build the integration code base it will pull in the local controller and the other parts will still come from the public system. Same with the Openflowplugin/openFlowjava you build them locally then it won't go look for the needed jar's from the public system.

edit flag offensive delete publish link more


Thank you for your clear explanation.

Hongjun_Ni ( 2015-08-13 00:11:21 -0700 )edit

answered 2015-03-27 00:57:45 -0700

wangruxun gravatar image

I also meet the problems.I want to modify of opendaylight's helium vesion's codes.about modify openflow-plugins to add a match filed .could you tell me how to do it? thanks.

edit flag offensive delete publish link more


Same as what i said you pull in the (Any OpenDaylight) project, make your changes then you build it will store the built jars locally in the ~/.m2/ Basic when you build Integration project it first check your local /.m2/ before going to the public system.

Chris O'Shea ( 2015-03-27 04:52:17 -0700 )edit

But your example is too simple;could give me an complex example to let me see it .such as modify a sub-item of opendaylight;for example modify the openflow plugins,to make it take effect in controller .or ,add a mach filed in openflow 1.3 protocol.thanks

wangruxun ( 2015-03-31 01:48:43 -0700 )edit

so the project called controller is just the basic building block it really only have NetConf, RestCONF and MD-SAL functions. so you find the project that has the parts you wish to edit then you just build that and then use the integration project to bring it all together.

Chris O'Shea ( 2015-03-31 02:04:32 -0700 )edit

answered 2015-03-27 06:35:29 -0700

leclem gravatar image

updated 2015-03-27 06:47:28 -0700

Hi, Thank you for your response in such a short delay. I did what you told me to do, compile the controller and then the integration project :

git clone -b stable/helium

git clone -b stable/helium

cd controller

#modify some of the logs of the controllers in order to if the manipulation succeeded

mvn clean install

cd ../integration

mvn clean install

But it stills takes the files from the internet, my changes are not reflected in the logs and when I go for example in the folder ~/.m2/repository/org/controller/routing.dijkstra_implementation before the compilation of integration I only have a folder 0.4.6-SNAPSHOT but afer compilation I also have a 0.4.5-Helium-SR3 folder that appears so it seems that it downloaded the internet code. Do you know what I did wrong ?

edit flag offensive delete publish link more


One thing odd here is that that a SNAPSHOT is normally on the latest branch not the stable branch, so i'm not sure where that's getting pulled in from. cause everything should be -Helium-SR3 and not SNAPSHOT.

Chris O'Shea ( 2015-03-28 06:17:10 -0700 )edit

I really did "git clone -b stable/helium" and tried it several times with the same result, on different computers.. maybe I have to set up some configuration parameter ?

leclem ( 2015-03-29 05:56:27 -0700 )edit

Sorry, my comment wasn't correct the SNAPSHOT are still used, what you want to do is checkout the branch with the tag release/helium-sr3 for each of the projects. That will give u a common point for all projects.

Chris O'Shea ( 2015-03-29 17:54:57 -0700 )edit

It works ! Thank you very much for your help

leclem ( 2015-03-30 02:27:27 -0700 )edit
Login/Signup to Answer

Question Tools



Asked: 2015-03-26 05:14:24 -0700

Seen: 472 times

Last updated: Mar 27 '15