How to set bandwidth on Mininet custom topology?

NWOWN picture NWOWN · May 28, 2015 · Viewed 12.6k times · Source

I want to set bandwidth on Mininet custom topology.

The python code is:

#!/usr/bin/python
from mininet.topo import Topo
from mininet.net import Mininet
from mininet.node import CPULimitedHost
from mininet.link import TCLink
from mininet.util import dumpNodeConnections
from mininet.log import setLogLevel

class MyTopo( Topo ):
"Simple topology example."

    def __init__( self, **opts):
        "Create custom topo."

        # Initialize topology
        Topo.__init__( self, **opts )

        # Add hosts and switches
        h1 = self.addHost('h1')        
        h2 = self.addHost( 'h2' )

        s3 = self.addSwitch( 's3' )
        s1 = self.addSwitch( 's1' )
        s2 = self.addSwitch( 's2' )

        # Add links
        self.addLink(h1,s1,bw=10)
        self.addLink(h2,s3,bw=20)
        self.addLink(s3,s2,bw=10)
        self.addLink(s1,s3,bw=10)

topos = { 'mytopo': ( lambda: MyTopo() ) }

But it has error

------------------------------------------------------------------
Caught exception. Cleaning up...
TypeError: __init__() got an unexpected keyword argument 'bw'
------------------------------------------------------------------

What can I do? How to set bandwidth on Mininet custom topology?

Answer

Raviyo Andika picture Raviyo Andika · Nov 28, 2018

You should add cls=TCLink on the self.addLink(h1,s1,bw=10)

so the code will be self.addLink(h1,s1,cls=TCLink,bw=10)

Add to the other addLink to make it work