lunatikz
lunatikz

Reputation: 736

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 ?

Upvotes: 0

Views: 1506

Answers (2)

Broken pipe
Broken pipe

Reputation: 1

Thanks for sharing your answer! I just figured that《RYU SDN Framework》provides another way to solve this question(chapter 12.4):

class SliceableSwitch(UserSwitch):
    def __init__(self,name,**kwargs):
        UserSwitch.__init__(self,name, dpopts='', **kwargs)

Similar to your way, but no need to rebuild mininet.

Upvotes: 0

lunatikz
lunatikz

Reputation: 736

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

The ofsoftswitch13 utilizes two main components:

  • ofprotocol
  • ofdatapath

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.

Upvotes: 0

Related Questions