initial commit after bringing over cleaned up code and testing some examples
This commit is contained in:
parent
c4858e6e0d
commit
00f4ebf5a9
93 changed files with 15189 additions and 13083 deletions
|
@ -8,65 +8,82 @@
|
|||
#
|
||||
|
||||
|
||||
import optparse, sys, os, datetime, time
|
||||
import datetime
|
||||
import optparse
|
||||
import sys
|
||||
import time
|
||||
|
||||
from core import pycore
|
||||
from core.misc import ipaddr
|
||||
from core.misc.utils import mutecall
|
||||
from core.misc import ipaddress, nodeutils
|
||||
from core.misc import nodemaps
|
||||
from core.mobility import BasicRangeModel
|
||||
from core.netns.nodes import WlanNode
|
||||
from core.netns.vnet import EbtablesQueue
|
||||
from core.netns.vnode import LxcNode
|
||||
from core.session import Session
|
||||
|
||||
# node list - global so you can play using 'python -i'
|
||||
# e.g. >>> n[0].session.shutdown()
|
||||
n = []
|
||||
|
||||
|
||||
def test(options):
|
||||
prefix = ipaddr.IPv4Prefix("10.83.0.0/16")
|
||||
session = pycore.Session(persistent = True)
|
||||
prefix = ipaddress.Ipv4Prefix("10.83.0.0/16")
|
||||
session = Session(1, persistent=True)
|
||||
if options.enablesdt:
|
||||
session.location.setrefgeo(47.57917,-122.13232,50.0) # GUI default
|
||||
# GUI default
|
||||
session.location.setrefgeo(47.57917, -122.13232, 50.0)
|
||||
session.location.refscale = 100.0
|
||||
session.options.enablesdt = True
|
||||
session.options.sdturl = options.sdturl
|
||||
wlanid = options.numnodes + 1
|
||||
net = session.addobj(cls = pycore.nodes.WlanNode, name = "wlan%d" % wlanid,
|
||||
objid = wlanid, verbose = True)
|
||||
net = session.add_object(
|
||||
cls=WlanNode,
|
||||
name="wlan%d" % wlanid,
|
||||
objid=wlanid
|
||||
)
|
||||
|
||||
values = list(BasicRangeModel.getdefaultvalues())
|
||||
#values[0] = 5000000 # 5000km range
|
||||
# values[0] = 5000000 # 5000km range
|
||||
net.setmodel(BasicRangeModel, values)
|
||||
for i in xrange(1, options.numnodes + 1):
|
||||
tmp = session.addobj(cls = pycore.nodes.LxcNode, name = "n%d" % i,
|
||||
objid = i)
|
||||
tmp.newnetif(net, ["%s/%s" % (prefix.addr(i), prefix.prefixlen)])
|
||||
node = session.add_object(cls=LxcNode, name="n%d" % i, objid=i)
|
||||
address = "%s/%s" % (prefix.addr(i), prefix.prefixlen)
|
||||
print "setting node address: %s - %s" % (node.objid, address)
|
||||
node.newnetif(net, [address])
|
||||
# set increasing Z coordinates
|
||||
tmp.setposition(10, 10, 100*i)
|
||||
n.append(tmp)
|
||||
node.setposition(10, 10, 100)
|
||||
n.append(node)
|
||||
|
||||
# example setting node n2 to a high altitude
|
||||
#n[1].setposition(10, 10, 2000000) # 2000km
|
||||
#session.sdt.updatenode(n[1].objid, 0, 10, 10, 2000000)
|
||||
# n[1].setposition(10, 10, 2000000) # 2000km
|
||||
# session.sdt.updatenode(n[1].objid, 0, 10, 10, 2000000)
|
||||
|
||||
# launches terminal for the first node
|
||||
# n[0].term("bash")
|
||||
|
||||
n[0].term("bash")
|
||||
# wait for rate seconds to allow ebtables commands to commit
|
||||
time.sleep(EbtablesQueue.rate)
|
||||
#session.shutdown()
|
||||
|
||||
raw_input("press enter to exit")
|
||||
session.shutdown()
|
||||
|
||||
|
||||
def main():
|
||||
usagestr = "usage: %prog [-h] [options] [args]"
|
||||
parser = optparse.OptionParser(usage = usagestr)
|
||||
parser = optparse.OptionParser(usage=usagestr)
|
||||
|
||||
parser.set_defaults(numnodes = 2, enablesdt = False,
|
||||
sdturl = "tcp://127.0.0.1:50000/")
|
||||
parser.add_option("-n", "--numnodes", dest = "numnodes", type = int,
|
||||
help = "number of nodes to test; default = %s" %
|
||||
parser.defaults["numnodes"])
|
||||
parser.add_option("-s", "--sdt", dest = "enablesdt", action = "store_true",
|
||||
help = "enable SDT output")
|
||||
parser.add_option("-u", "--sdturl", dest = "sdturl", type = "string",
|
||||
help = "URL for SDT connection, default = %s" % \
|
||||
parser.defaults["sdturl"])
|
||||
parser.set_defaults(numnodes=2, enablesdt=False, sdturl="tcp://127.0.0.1:50000/")
|
||||
parser.add_option(
|
||||
"-n", "--numnodes", dest="numnodes", type=int,
|
||||
help="number of nodes to test; default = %s" % parser.defaults["numnodes"]
|
||||
)
|
||||
parser.add_option("-s", "--sdt", dest="enablesdt", action="store_true", help="enable SDT output")
|
||||
parser.add_option(
|
||||
"-u", "--sdturl", dest="sdturl", type="string",
|
||||
help="URL for SDT connection, default = %s" % parser.defaults["sdturl"]
|
||||
)
|
||||
|
||||
def usage(msg = None, err = 0):
|
||||
def usage(msg=None, err=0):
|
||||
sys.stdout.write("\n")
|
||||
if msg:
|
||||
sys.stdout.write(msg + "\n\n")
|
||||
|
@ -86,8 +103,12 @@ def main():
|
|||
|
||||
test(options)
|
||||
|
||||
print >> sys.stderr, \
|
||||
"elapsed time: %s" % (datetime.datetime.now() - start)
|
||||
print >> sys.stderr, "elapsed time: %s" % (datetime.datetime.now() - start)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# configure nodes to use
|
||||
node_map = nodemaps.CLASSIC_NODES
|
||||
nodeutils.set_node_map(node_map)
|
||||
|
||||
main()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue