pox openflow - host_tracker not executing - openflow

I am new to pox and I don't know how to run the components in pox. Currently I'm stuck with the host_tracker.py taken from https://github.com/CPqD/RouteFlow/blob/master/pox/pox/host_tracker/host_tracker.py
I've tried something like this:
./debug-pox.py host_tracker
And got the output as
POX 0.3.0 (dart) / Copyright 2011-2014 James McCauley, et al.
DEBUG:core:POX 0.3.0 (dart) going up...
DEBUG:core:Running on CPython (2.7.6/Mar 22 2014 22:59:56)
DEBUG:core:Platform is Linux-3.13.0-53-generic-x86_64-with-Ubuntu-14.04-trusty
DEBUG:core:host_tracker still waiting for: openflow
WARNING:core:Still waiting on 1 component(s)
INFO:core:POX 0.3.0 (dart) is up.
Not sure what it means :( Kindly tell me how to run components in pox.
Thanks :)

Assuming that you have mininet up and running you should use the host_tracker along with the openflow.discovery module. In addition you should load an example controller (stock component) included in your pox version.
First load a sample mininet
sudo mn --controller remote
Then run pox like this
python pox.py forwarding.l2_pairs host_tracker openflow.discovery
When all is up and running in the terminal you launched mininet issue a
pingall
and monitor the terminal in which you run pox to observe host_tracker info
forwarding.l2_pairs is a sample controller (stock component) that will handle the network and flows modifications. host_tracker is the host tracker module and the openflow.discovery is the discovery module of pox.
To find more stock components go to https://openflow.stanford.edu/display/ONL/POX+Wiki#POXWiki-StockComponents
To read more about host_tracker https://openflow.stanford.edu/display/ONL/POX+Wiki#POXWiki-host_tracker

Related

vulkan is not avaible in lxc / lxd container but opengl is

I am using ubuntu 18:04 with an lxc / lxd steam container. It works great, I followed this tutorial and did some changes to the network stuff.
https://blog.simos.info/running-steam-in-a-lxd-system-container/
Steam works for opengl games but not for vulkan games. Same for lutris.
Host side:
===========
VULKAN INFO
===========
Vulkan Instance Version: 1.1.70
Instance Extensions:
====================
Instance Extensions count = 16
Container side:
ubuntu#steam:~$ vulkaninfo
===========
VULKAN INFO
===========
Vulkan Instance Version: 1.1.70
ERROR: setupLoaderTermPhysDevs: Failed to detect any valid GPUs in the current config
ERROR: setupLoaderTrampPhysDevs: Failed during dispatch call of 'vkEnumeratePhysicalDevices' to lower layers or loader to get count.
/build/vulkan-UL09PJ/vulkan-1.1.70+dfsg1/demos/vulkaninfo.c:2700: failed with VK_ERROR_INITIALIZATION_FAILED
OpenGL works just fine, games run fast, so it must find my only gpu in the system. Do I have to separately enable vulkan for the container?
The host has no problems with the vulkan smoketest either:
user#host:~$ vulkan-smoketest
7223 presents in 5.00039 seconds (FPS: 1444.49)
That guide adds manually the necessary OpenGL shared libraries in the LXD container, and by doing so, does not add the Vulkan shared libraries.
LXD now supports the NVidia container runtime (provided by NVidia), therefore you can use it instead. Follow the more recent guide at https://blog.simos.info/running-x11-software-in-lxd-containers/
A reddit user named zakk wrote a solution in the comments of https://blog.simos.info/running-steam-in-a-lxd-system-container/.
After doing some traces, I noticed it is failing to open files in
/dev/dri The container has the wrong permissions; on the host those
files have an ACL set that lets the current user access them, the
container does not. So to fix: in the container run
sudo setfacl -m "u:ubuntu:rw-" /dev/dri/*
You have to execute the setfacl command every time you start lxc.

Opendaylight Aluminium with mininet torus

I am trying to connect my custom topology to the ODL controller using the command:
sudo mn --topo torus,3,3 --controller=remote,ip=$OPENDAYLIGHTIP,port=6653 --switch ovsk,protocols=OpenFlow13
However, it gives 100% dropped on the ping test;
I have installed these features:
feature:install odl-openflowplugin-flow-services-rest odl-openflowplugin-app-table-miss-enforcer
Could you help me please which features do I need to install? I'm able to run these steps with ODL 0.5.3. I need to update my SDN controller.
As far as I know, the L2Switch feature which was responsible for L2 switching is not supporting after the Fluorine version. There is no module for arp handling l2 switching. It may visible to write a code to do L2 forwarding.
P.S Regarding your topo
"This topology has LOOPS and WILL NOT WORK with the default controller or any Ethernet bridge without STP turned on! It can be used with STP, e.g"

How do I build and run the code from github for NS3 in the link provided

How do I build and run the code from github for NS3 in the link provided below
https://github.com/mkheirkhah/mptcp
it has already ns3 installation steps with mptcp
https://github.com/mkheirkhah/mptcp
this is the Installations steps go according to it ul get to know
We have tested this code on Mac (with llvm-gcc42 and python 2.7.3-11) and several Linux distributions (e.g. Red Hat with gcc4.4.7 or Ubuntu16.4 with gcc5.4.0).
Clone the MPTCP's repository
git clone https://github.com/mkheirkhah/mptcp.git
Configure and build
CXXFLAGS="-Wall" ./waf configure build
Run a simulation
./waf --run "mptcp"
https://github.com/Kashif-Nadeem/ns-3-dev-git is the more recent fork of https://github.com/teto/ns-3-dev-git/wiki which started as mkheirkhah's fork.
It should work with the latest ns-3. Compared to mkheirkhah's approach (I haven't checked if it is still valid), it tries to reuse the TCP socket code so that it can use TCP socket application. You can read more details from https://www.researchgate.net/publication/313623789_An_Implementation_of_Multipath_TCP_in_ns3

Cannot deploy smart contract with Eris / Monax

I'm following the Getting Started Tutorial, using eris version 0.12.0
I stuck at the point where to deploy the smart contract ~/.eris/apps/idi/idi.sol
eris pkgs do --chain simplechain --address $addr
By random I get either of following two errors:
Performing action. This can sometimes take a wee while
Could not perform pkg action service: Could not perform pkg action: Docker: {"m
ssage":"Cannot link to a non running container: /simplechain-a49e7fc2-45d4-44df
83bf-1dfab6246c13 AS /interactive-67fff395-600b-4161-912b-df11dc6b2807/chain"}
or:
Performing action. This can sometimes take a wee while
Could not perform pkg action service: Docker: {"message":"Invalid container name
(.eris_tmp_-798bc8a1-70bb-45fd-ac23-8468503cdbad), only [a-zA-Z0-9][a-zA-Z0-9_.
-] are allowed"}
When I install eris version 0.11.4 the error looks like this:
Performing action. This can sometimes take a wee while
Sorry, the marmots were unable to load the eris-pm jobs file. Please check your
path.
ERROR => Unsupported Config Type ""
Container interactive-39ac3a49-52fa-4f1d-953e-1662b1af7f21 exited with status 1
I restarted Docker Quickstart Terminal several times and also deleted the default VM in VirtualBox.
What I'm doing wrong? Thanks for help!
In addition to David's answer, you also should run
eval $(docker-machine env eris) to activate the docker-image.
I had been missing the eris docker-machine running. You can check this with
docker-machine ls
And you can recreate it with:
docker-machine create -d virtualbox eris
Thanks to quick help from Monax / Eris team.

Celery error "Received 0x00 while expecting 0xce"

I try to use celery. I have installed rabbit-mq by command from celery tutorial:
sudo apt-get install rabbitmq-server
And all worked well while I write my code in one file and run it to test functionality. But when I tried to add my code in Django views, and then to do concurrent requests to my views, I got this kind of exception:
File "/home/kinmanz/PycharmProjects/GitFace/myvenv/lib/python3.5/site-packages/amqp/connection.py", line 464, in drain_events
return self.blocking_read(timeout)
File "/home/kinmanz/PycharmProjects/GitFace/myvenv/lib/python3.5/site-packages/amqp/connection.py", line 468, in blocking_read
frame = self.transport.read_frame()
File "/home/kinmanz/PycharmProjects/GitFace/myvenv/lib/python3.5/site-packages/amqp/transport.py", line 251, in read_frame
'Received {0:#04x} while expecting 0xce'.format(ch))
amqp.exceptions.UnexpectedFrame: Received 0x00 while expecting 0xce
I think that problem may be in concurrency of request, and I should somehow to make queue concurrent safe.
I use Python 3.5, Celery 4.0.0, RabbitMQ 3.5.7
Actually problem in amqplib see answer below.
May be for someone who has the same problem, I will list possible solutions that I have managed to find. If you know better solution please add your answer or comment mine.
If you are using Python 2.x then see that issue https://github.com/celery/celery/issues/922
problem actually in amqplib if it change on librabbitmq all should be working, it's quite easy to do, see:
Framing Errors in Celery 3.0.1
But if you are using Python 3.x you can't solve that problem in that way, because there is no Python 3-compatible librabbitmq available, see that issue https://github.com/celery/celery/issues/2066 but in that case you can change your result backend on redis for example:
1) Install redis server:
$ sudo aptitude install redis-server
2) Change your app configuration
app = Celery('tasks', backend='redis://localhost', broker='pyamqp://')
Some useful links about installation redis: Setting up an asynchronous task queue for django using celery redis and Celery-redis quick guide
Also for Python 3 you can try to run celery worker in Python 2.7 while your app is working on Python 3, in that case don't forget install librabbitmq instead of amqplib. (This way seems to be inconvenient)