Auto-install run and clean scripts

Also remove usused imports and outdated doc text.
This commit is contained in:
Brandon Heller
2010-01-02 02:43:51 -08:00
parent a6b473227f
commit 8f20b95d56
3 changed files with 26 additions and 65 deletions
+4 -2
View File
@@ -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
+6 -55
View File
@@ -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
@@ -517,28 +492,4 @@ class MininetCLI(object):
else: else:
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)
+16 -8
View File
@@ -2,26 +2,34 @@
'''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'),
long_description="""\ long_description="""\
Insert longer description here. Insert longer description here.
""", """,
classifiers=[ classifiers=[
"License :: OSI Approved :: GNU General Public License (GPL)", "License :: OSI Approved :: GNU General Public License (GPL)",
"Programming Language :: Python", "Programming Language :: Python",
"Development Status :: 4 - Beta", "Development Status :: 4 - Beta",
"Intended Audience :: Developers", "Intended Audience :: Developers",
"Topic :: Internet", "Topic :: Internet",
], ],
keywords='networking protocol Internet OpenFlow', keywords='networking protocol Internet OpenFlow',
license='GPL', license='GPL',
install_requires=[ install_requires=[
'setuptools' 'setuptools'
]) ],
scripts=scripts,
package_dir={modname:''})