...
Download the source code. If you already have Mininet installed in your system, run the following script - it will download the CPqD software switch and try to install it.
Code Block mininet/util/install.sh -3f
Or you can download from the CPqD github repo. Check if you can compile it. It may fail ...
Code Block git clone https://github.com/CPqD/ofsoftswitch13.git cd ~/ofsoftswitch13 ./boot.sh ./configure make sudo make install
If your compile step failed go to this page fix this issue. Once you can successfully compile, go to the next step.
Once the switch compiles, we are unfortunately not done yet. There are some bugs in the switch, which we have fixed. So we need to patch the code with these fixes. Why patch? Why did we not just submit our fixes upstream so everyone can benefit from our fixes? Well the answer is that while we have made fixes, we have made them in a hacky way - we have taken shortcuts just to make things work and move on because of the tight deadlines in this project. Hopefully these issues will be fixed in a clean way by the switch maintainers. For now, we need to patch the code. To start with we need to go back to the specific checkin on which the patch applies. In the ofsoftswitch13 folder, enter
Code Block language text git checkout -b cpqd-spring 36738aeb3501f66fb382e7b59138c88e8843b19c
Now when you do 'git log' you should see this
Code Block mininet@mininet-vm:~/ofsoftswitch13$ git log commit 36738aeb3501f66fb382e7b59138c88e8843b19c Author: Jean Tourrilhes <jean.tourrilhes@hp.com> Date: Mon Aug 25 17:00:13 2014 -0700 Fix a few more warnings. commit bd8e7b68951c5ef2293d0a0e45c89b265a2eba17 Author: Jean Tourrilhes <jean.tourrilhes@hp.com> Date: Mon Aug 25 16:50:09 2014 -0700 Finish reverting EXT-192/EXT-276 Role Status (1.4 feature). ...
Download the following patch: patchfile-cpqd
You can apply the patch with the command
Code Block language text patch -p0 < patchfile_-cpqd
Now if you do 'git status', you should see something like
Code Block mininet@mininet-vm:~/ofsoftswitch13$ git status On branch cpqd-spring Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: oflib/oxm-match.c modified: secchan/port-watcher.c Untracked files: (use "git add <file>..." to include in what will be committed) .deps/ patchfile utilities/ofp-read utilities/ofp-read.o no changes added to commit (use "git add" and/or "git commit -a") mininet@mininet-vm:~/ofsoftswitch13$
Finally, compile again
Code Block mininet@mininet-vm:~/ofsoftswitch13$ make mininet@mininet-vm:~/ofsoftswitch13$ sudo make install
Now you are ready to use the switch in Mininet. See Configuring CPqD Software Switches.