Auto-install run and clean scripts
Also remove usused imports and outdated doc text.
This commit is contained in:
@@ -1,6 +1,8 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/env python
|
||||||
|
"""Mininet Cleanup
|
||||||
|
|
||||||
|
@author Bob Lantz (rlantz@cs.stanford.edu)
|
||||||
|
|
||||||
"""
|
|
||||||
Unfortunately, Mininet and OpenFlow don't always clean up
|
Unfortunately, Mininet and OpenFlow don't always clean up
|
||||||
properly after themselves. Until they do (or until cleanup
|
properly after themselves. Until they do (or until cleanup
|
||||||
functionality is integrated into the python code), this
|
functionality is integrated into the python code), this
|
||||||
+5
-54
@@ -1,7 +1,8 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
|
"""Mininet: A simple networking testbed for OpenFlow!
|
||||||
|
|
||||||
"""
|
@author Bob Lantz (rlantz@cs.stanford.edu)
|
||||||
Mininet: A simple networking testbed for OpenFlow!
|
@author Brandon Heller (brandonh@stanford.edu)
|
||||||
|
|
||||||
Mininet creates scalable OpenFlow test networks by using
|
Mininet creates scalable OpenFlow test networks by using
|
||||||
process-based virtualization and network namespaces.
|
process-based virtualization and network namespaces.
|
||||||
@@ -16,7 +17,7 @@ Each host has:
|
|||||||
A parent shell (and possibly some child processes) in a namespace
|
A parent shell (and possibly some child processes) in a namespace
|
||||||
|
|
||||||
Hosts have a network interface which is configured via ifconfig/ip
|
Hosts have a network interface which is configured via ifconfig/ip
|
||||||
link/etc. with data network IP addresses (e.g. 192.168.123.2 )
|
link/etc.
|
||||||
|
|
||||||
This version supports both the kernel and user space datapaths
|
This version supports both the kernel and user space datapaths
|
||||||
from the OpenFlow reference implementation.
|
from the OpenFlow reference implementation.
|
||||||
@@ -43,40 +44,14 @@ Naming:
|
|||||||
Switch nodes are named s0-sN
|
Switch nodes are named s0-sN
|
||||||
Interfaces are named {nodename}-eth0 .. {nodename}-ethN,
|
Interfaces are named {nodename}-eth0 .. {nodename}-ethN,
|
||||||
|
|
||||||
Thoughts/TBD:
|
|
||||||
|
|
||||||
It should be straightforward to add a function to read
|
|
||||||
OpenFlowVMS spec files, but I haven't done so yet.
|
|
||||||
For the moment, specifying configurations and tests in Python
|
|
||||||
is straightforward and relatively concise.
|
|
||||||
Soon, we may want to split the various subsystems (core,
|
|
||||||
topology/network, cli, tests, etc.) into multiple modules.
|
|
||||||
Currently nox support is in nox.py.
|
|
||||||
We'd like to support OpenVSwitch as well as the reference
|
|
||||||
implementation.
|
|
||||||
|
|
||||||
Bob Lantz
|
|
||||||
rlantz@cs.stanford.edu
|
|
||||||
|
|
||||||
History:
|
|
||||||
11/19/09 Initial revision (user datapath only)
|
|
||||||
11/19/09 Mininet demo at OpenFlow SWAI meeting
|
|
||||||
12/08/09 Kernel datapath support complete
|
|
||||||
12/09/09 Moved controller and switch routines into classes
|
|
||||||
12/12/09 Added subdivided network driver workflow
|
|
||||||
12/13/09 Added support for custom controller and switch classes
|
|
||||||
"""
|
"""
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
from subprocess import call
|
from subprocess import call
|
||||||
import sys
|
import sys
|
||||||
from time import sleep
|
from time import sleep
|
||||||
#flush = sys.stdout.flush
|
|
||||||
#import os, re, signal, sys, select
|
|
||||||
|
|
||||||
from mininet.logging_mod import lg, set_loglevel
|
from mininet.logging_mod import lg
|
||||||
from mininet.node import Host, Controller, Switch, ControllerParams
|
|
||||||
from mininet.topo import TreeTopo
|
|
||||||
from mininet.util import quietRun, fixLimits
|
from mininet.util import quietRun, fixLimits
|
||||||
from mininet.util import make_veth_pair, move_intf, retry, MOVEINTF_DELAY
|
from mininet.util import make_veth_pair, move_intf, retry, MOVEINTF_DELAY
|
||||||
|
|
||||||
@@ -518,27 +493,3 @@ class MininetCLI(object):
|
|||||||
lg.error('CLI: unknown node or command: < %s >\n' % first)
|
lg.error('CLI: unknown node or command: < %s >\n' % first)
|
||||||
#lg.info('*** CLI: command complete\n')
|
#lg.info('*** CLI: command complete\n')
|
||||||
return 'exited by user command'
|
return 'exited by user command'
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
if len(sys.argv) > 1:
|
|
||||||
set_loglevel(sys.argv[1])
|
|
||||||
else:
|
|
||||||
set_loglevel('info')
|
|
||||||
|
|
||||||
init()
|
|
||||||
results = {}
|
|
||||||
lg.info("*** Welcome to Mininet!\n")
|
|
||||||
lg.info("*** Look in examples/ for more examples\n\n")
|
|
||||||
lg.info("*** Testing Mininet with kernel and user datapath\n")
|
|
||||||
for datapath in DATAPATHS:
|
|
||||||
k = datapath == 'kernel'
|
|
||||||
controller_params = ControllerParams(0x0a000000, 8) # 10.0.0.0/8
|
|
||||||
mn = Mininet(TreeTopo(), Switch, Host, Controller,
|
|
||||||
controller_params)
|
|
||||||
mn.start()
|
|
||||||
dropped = mn.ping_test()
|
|
||||||
results[datapath] = "%i%% dropped" % dropped
|
|
||||||
mn.stop()
|
|
||||||
|
|
||||||
lg.info("*** Test results: %s\n", results)
|
|
||||||
@@ -2,11 +2,17 @@
|
|||||||
'''Setuptools params'''
|
'''Setuptools params'''
|
||||||
|
|
||||||
from setuptools import setup, find_packages
|
from setuptools import setup, find_packages
|
||||||
|
from os.path import join
|
||||||
|
|
||||||
|
scripts = [join('bin', filename) for filename in
|
||||||
|
['mn_run.py', 'mn_clean.py']]
|
||||||
|
|
||||||
|
modname = distname = 'mininet'
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name='mininet',
|
name=distname,
|
||||||
version='0.0.0',
|
version='0.0.0',
|
||||||
description='The OpenFlow-based data center network',
|
description='Process-based OpenFlow emulator',
|
||||||
author='Bob Lantz',
|
author='Bob Lantz',
|
||||||
author_email='rlantz@cs.stanford.edu',
|
author_email='rlantz@cs.stanford.edu',
|
||||||
packages=find_packages(exclude='test'),
|
packages=find_packages(exclude='test'),
|
||||||
@@ -24,4 +30,6 @@ Insert longer description here.
|
|||||||
license='GPL',
|
license='GPL',
|
||||||
install_requires=[
|
install_requires=[
|
||||||
'setuptools'
|
'setuptools'
|
||||||
])
|
],
|
||||||
|
scripts=scripts,
|
||||||
|
package_dir={modname:''})
|
||||||
|
|||||||
Reference in New Issue
Block a user