Lab 1: Create a network and run a simple performance test
[Description]
Prepare a SingleSwitchTopo class that adds a single switch and n hosts into a network. Each link connected from host to switch can be set the bandwidth, delay time, and loss rate. Then create a network that contains one switch and 4 hosts. Finally, use iperf to test the bandwidth between host 1 and host 4.
[mymininet1.py]
#!/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 SingleSwitchTopo(Topo): "Single switch connected to n hosts." def __init__(self, n=2, **opts): Topo.__init__(self, **opts) switch = self.addSwitch('s1') for h in range(n): #Each host gets 50%/n of system CPU host = self.addHost('h%s' % (h + 1), cpu=.5/n) #10 Mbps, 5ms delay, 0% Loss, 1000 packet queue self.addLink(host, switch, bw=10, delay='5ms', loss=0, max_queue_size=1000, use_htb=True)
def perfTest(): "Create network and run simple performance test" topo = SingleSwitchTopo(n=4) net = Mininet(topo=topo,host=CPULimitedHost, link=TCLink) net.start() print "Dumping host connections" dumpNodeConnections(net.hosts) print "Testing network connectivity" net.pingAll() print "Testing bandwidth between h1 and h4" h1, h4 = net.get('h1', 'h4') net.iperf((h1, h4)) net.stop()
if __name__=='__main__': setLogLevel('info') perfTest() |
[Execution]
(Need to use chmod +x to add execution property to mymininet1.py first. Then use sudo to run the script.)
Dr. Chih-Heng Ke (smallko@gmail.com)
Department of Computer Science and Information Engineering,
National Quemoy University, Kinmen, Taiwan.