queuemininetopenflowsdn

Adding queues to switch of ofsoftswitch13 implementation doesnt work


Im trying to add queues (bound to ports) to several switches of an emulated network environment by mininet. The used switch implemention is ofsoftswitch13

Command to start mininet:

sudo mn --custom mininet-mesh-topology.py --topo test --controller remote,ip=192.168.56.1,port=6653 --switch=user,protocols=OpenFlow13 --link tc

When i try using:

sudo dpctl unix:/tmp/s1 queue-mod 1 1 10

it returns :

SENDING (xid=0xF0FF00F0):
expmodqueue{port="1", queue={q="1", props=[minrate{rate="10"}]}}


RECEIVED (xid=0xF0FF00F0):
error{type="QUEUE_OP_FAILED", code="EPERM", dlen="56"}

The error message indicates, that there is probably a permission error, but I dont know how to solve this. Flow inserting / modification works as expected, whether done by dpctl or an sdn controller.

Can anyone help ?


Solution

  • I managed now to solve my own question. For those, who are interested:

    The ofsoftswitch13 utilizes two main components:

    It appears that default settings of mininet includes the usage of the ´´no--slicing´´ option within the ofdatapath cmd, which prevents me from adding queues. So the basic solution is to run ofdatapath without the mentioned option flag. As I create my virtual network with mininet, i had to change one line of mininet python files.

    In ./mininet/mininet/node.py change the line 923 from:

    def __init__( self, name, dpopts='--no-slicing', **kwargs ):
    

    to

    def __init__( self, name, dpopts='', **kwargs ):
    

    Afterwards rebuild mininet with

    sudo make install
    

    If you use now mininet to create your network, the mentioned flag isnt used anymore and adding queues is possible!

    Hope it helps, if anyone struggles the same issue.