mininet / examples / simpleperf.py @ e0bf8ece
History | View | Annotate | Download (1.47 KB)
1 |
#!/usr/bin/python
|
---|---|
2 |
|
3 |
"""
|
4 |
Simple example of setting network and CPU parameters
|
5 |
|
6 |
NOTE: link params limit BW, add latency, and loss.
|
7 |
There is a high chance that pings WILL fail and that
|
8 |
iperf will hang indefinitely if the TCP handshake fails
|
9 |
to complete.
|
10 |
"""
|
11 |
|
12 |
from mininet.topo import Topo |
13 |
from mininet.net import Mininet |
14 |
from mininet.node import CPULimitedHost |
15 |
from mininet.link import TCLink |
16 |
from mininet.util import dumpNodeConnections |
17 |
from mininet.log import setLogLevel |
18 |
|
19 |
class SingleSwitchTopo(Topo): |
20 |
"Single switch connected to n hosts."
|
21 |
def __init__(self, n=2, **opts): |
22 |
Topo.__init__(self, **opts)
|
23 |
switch = self.addSwitch('s1') |
24 |
for h in range(n): |
25 |
# Each host gets 50%/n of system CPU
|
26 |
host = self.addHost('h%s' % (h + 1), |
27 |
cpu=.5 / n)
|
28 |
# 10 Mbps, 5ms delay, 10% loss
|
29 |
self.addLink(host, switch,
|
30 |
bw=10, delay='5ms', loss=10, use_htb=True) |
31 |
|
32 |
def perfTest(): |
33 |
"Create network and run simple performance test"
|
34 |
topo = SingleSwitchTopo( n=4 )
|
35 |
net = Mininet( topo=topo, |
36 |
host=CPULimitedHost, link=TCLink, |
37 |
autoStaticArp=True )
|
38 |
net.start() |
39 |
print "Dumping host connections" |
40 |
dumpNodeConnections(net.hosts) |
41 |
print "Testing bandwidth between h1 and h4" |
42 |
h1, h4 = net.getNodeByName('h1', 'h4') |
43 |
net.iperf( ( h1, h4 ), l4Type='UDP' )
|
44 |
net.stop() |
45 |
|
46 |
if __name__ == '__main__': |
47 |
setLogLevel('info')
|
48 |
perfTest() |