# Revision history [back]

First thing, your actual question:

I find it more pleasant to run the mininet topology inside a python script. Here is a copy of the script I currently use:

https://pastebin.com/DSn52iLV

Replace the IP address by the IP address of your own controller. Run the script with

sudo python topology.py


This should launch mininet, setup the topology, and initiate a ping from host1 to host2. Note that you should be running this within a separate OS (usually a mininet-dedicated vagrant box).

Second, making l2switch show up in your plugins list inside ODL:

I am unsure how your project is structured, but I use the exact same structure as the current l2switch project (that is, the parent project is imported by every plugin-project, there is a karaf4 features project which bundles all feature projects, and there is one feature project for each plugin. Finally, there is the distribution/karaf project which generates the controller distribution).

For l2switch to show up in the ODL controller distribution generated inside distribution/karaf, you will need to refer to the l2switch imports inside the karaf4 features project. This is exactly what I do. Here is what my karaf4 project looks like (I use the most recent versions for the imports. Your versions may be different):

Here is the pom.xml of my karaf4 project (usually under features/features-[project-name], or features/features4-[project-name] if you want to distinguish between karaf3 feature projects) :

https://pastebin.com/XNT70JMc

Here is what my distribution/karaf project pom.xml looks like:

https://pastebin.com/niCpsqYe

Note the presence of the property "local feature". I am not 100% I understand what it does, but my impression is that it causes those plugins to be installed during distribution (saving some installation time afterwards).

I hope this helps.

First thing, your actual question:

I find it more pleasant to run the mininet topology inside a python script. Here is a copy of the script I currently use:

https://pastebin.com/DSn52iLV

Replace the IP address by the IP address of your own controller. Run the script with

sudo python topology.py


This should launch mininet, setup the topology, and initiate a ping from host1 to host2. Note that you should be running this within a separate OS (usually a mininet-dedicated vagrant box).

Second, making l2switch show up in your plugins list inside ODL:

I am unsure how your project is structured, but I use the exact same structure as the current l2switch project (that is, the parent project is imported by every plugin-project, there is a karaf4 features project which bundles all feature projects, and there is one feature project for each plugin. Finally, there is the distribution/karaf project which generates the controller distribution).

For l2switch to show up in the ODL controller distribution generated inside distribution/karaf, you will need to refer to the l2switch imports inside the karaf4 features project. This is exactly what I do. Here is what my karaf4 project looks like (I use the most recent versions for the imports. Your versions may be different):project.

Here is the pom.xml of my karaf4 project (usually under features/features-[project-name], or features/features4-[project-name] if you want to distinguish between karaf3 feature projects) projects). Note that my versions may not be the same as yours. I use version 0.6.0-SNAPSHOT of l2switch because this is the most recent version that works for me (0.7.0-SNAPSHOT breaks for me, for no reason I understand) :

https://pastebin.com/XNT70JMc

Here is what my distribution/karaf project pom.xml looks like:

https://pastebin.com/niCpsqYe

Note the presence of the property "local feature". I am not 100% I understand what it does, but my impression is that it causes those plugins to be installed during distribution (saving some installation time afterwards).

I hope this helps.