updates to make future apis a bit better, updated handlers and all tests to account for changes
This commit is contained in:
parent
3ea885e2eb
commit
c0b450789a
9 changed files with 94 additions and 155 deletions
|
@ -6,6 +6,7 @@ import datetime
|
|||
|
||||
import parser
|
||||
from core.emane.ieee80211abg import EmaneIeee80211abgModel
|
||||
from core.enumerations import EventTypes
|
||||
from core.future.coreemu import CoreEmu
|
||||
from core.future.futuredata import IpPrefixes
|
||||
|
||||
|
@ -18,6 +19,9 @@ def example(options):
|
|||
coreemu = CoreEmu()
|
||||
session = coreemu.create_session()
|
||||
|
||||
# must be in configuration state for nodes to start, when using "node_add" below
|
||||
session.set_state(EventTypes.CONFIGURATION_STATE.value)
|
||||
|
||||
# create emane network node
|
||||
emane_network = session.create_emane_network(
|
||||
model=EmaneIeee80211abgModel,
|
||||
|
@ -29,7 +33,8 @@ def example(options):
|
|||
for i in xrange(options.nodes):
|
||||
node = session.create_emane_node()
|
||||
node.setposition(x=150 * (i + 1), y=150)
|
||||
coreemu.add_interface(emane_network, node, prefixes)
|
||||
interface = prefixes.create_interface(node)
|
||||
session.add_link(node.objid, emane_network.objid, interface_one=interface)
|
||||
|
||||
# instantiate session
|
||||
session.instantiate()
|
|
@ -1,60 +0,0 @@
|
|||
#!/usr/bin/python
|
||||
#
|
||||
# run iperf to measure the effective throughput between two nodes when
|
||||
# n nodes are connected to a virtual wlan; run test for testsec
|
||||
# and repeat for minnodes <= n <= maxnodes with a step size of
|
||||
# nodestep
|
||||
|
||||
import datetime
|
||||
|
||||
import parser
|
||||
from core.future.coreemu import CoreEmu
|
||||
from core.future.futuredata import IpPrefixes
|
||||
from core.netns.nodes import CoreNode, SwitchNode
|
||||
|
||||
|
||||
def example(options):
|
||||
# ip generator for example
|
||||
prefixes = IpPrefixes("10.83.0.0/16")
|
||||
|
||||
# create emulator instance for creating sessions and utility methods
|
||||
coreemu = CoreEmu()
|
||||
session = coreemu.create_session()
|
||||
|
||||
# create switch network node
|
||||
switch_network = session.create_node(cls=SwitchNode)
|
||||
|
||||
# create nodes
|
||||
for _ in xrange(options.nodes):
|
||||
node = session.create_node(cls=CoreNode)
|
||||
coreemu.add_interface(switch_network, node, prefixes)
|
||||
|
||||
# instantiate session
|
||||
session.instantiate()
|
||||
|
||||
# get nodes to run example
|
||||
first_node = session.get_object(2)
|
||||
last_node = session.get_object(options.nodes + 1)
|
||||
|
||||
print "starting iperf server on node: %s" % first_node.name
|
||||
first_node.cmd(["iperf", "-s", "-D"])
|
||||
address = prefixes.ip4_address(first_node)
|
||||
print "node %s connecting to %s" % (last_node.name, address)
|
||||
last_node.client.icmd(["iperf", "-t", str(options.time), "-c", address])
|
||||
first_node.cmd(["killall", "-9", "iperf"])
|
||||
|
||||
# shutdown session
|
||||
coreemu.shutdown()
|
||||
|
||||
|
||||
def main():
|
||||
options = parser.parse_options("switch")
|
||||
|
||||
start = datetime.datetime.now()
|
||||
print "running switch example: nodes(%s) time(%s)" % (options.nodes, options.time)
|
||||
example(options)
|
||||
print "elapsed time: %s" % (datetime.datetime.now() - start)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
|
@ -10,7 +10,7 @@ import datetime
|
|||
import parser
|
||||
from core.enumerations import NodeTypes, EventTypes
|
||||
from core.future.coreemu import CoreEmu
|
||||
from core.future.futuredata import IpPrefixes, NodeOptions
|
||||
from core.future.futuredata import IpPrefixes
|
||||
|
||||
|
||||
def example(options):
|
||||
|
@ -25,13 +25,11 @@ def example(options):
|
|||
session.set_state(EventTypes.CONFIGURATION_STATE.value)
|
||||
|
||||
# create switch network node
|
||||
node_options = NodeOptions(_type=NodeTypes.SWITCH)
|
||||
switch = session.add_node(node_options)
|
||||
switch = session.add_node(_type=NodeTypes.SWITCH)
|
||||
|
||||
# create nodes
|
||||
for _ in xrange(options.nodes):
|
||||
node_options = NodeOptions(_type=NodeTypes.DEFAULT)
|
||||
node = session.add_node(node_options)
|
||||
node = session.add_node()
|
||||
interface = prefixes.create_interface(node)
|
||||
session.add_link(node.objid, switch.objid, interface_one=interface)
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
# nodestep
|
||||
|
||||
from core.enumerations import NodeTypes, EventTypes
|
||||
from core.future.futuredata import IpPrefixes, NodeOptions
|
||||
from core.future.futuredata import IpPrefixes
|
||||
|
||||
|
||||
def example(nodes):
|
||||
|
@ -15,19 +15,17 @@ def example(nodes):
|
|||
|
||||
# create emulator instance for creating sessions and utility methods
|
||||
coreemu = globals()["coreemu"]
|
||||
session = coreemu.create_session(master=True)
|
||||
session = coreemu.create_session()
|
||||
|
||||
# must be in configuration state for nodes to start, when using "node_add" below
|
||||
session.set_state(EventTypes.CONFIGURATION_STATE.value)
|
||||
|
||||
# create switch network node
|
||||
node_options = NodeOptions(_type=NodeTypes.SWITCH)
|
||||
switch = session.add_node(node_options)
|
||||
switch = session.add_node(_type=NodeTypes.SWITCH)
|
||||
|
||||
# create nodes
|
||||
for _ in xrange(nodes):
|
||||
node_options = NodeOptions(_type=NodeTypes.DEFAULT.value)
|
||||
node = session.add_node(node_options)
|
||||
node = session.add_node()
|
||||
interface = prefixes.create_interface(node)
|
||||
session.add_link(node.objid, switch.objid, interface_one=interface)
|
||||
|
||||
|
|
|
@ -8,10 +8,10 @@
|
|||
import datetime
|
||||
|
||||
import parser
|
||||
from core.enumerations import NodeTypes, EventTypes
|
||||
from core.future.coreemu import CoreEmu
|
||||
from core.future.futuredata import IpPrefixes
|
||||
from core.mobility import BasicRangeModel
|
||||
from core.netns.nodes import WlanNode, CoreNode
|
||||
|
||||
|
||||
def example(options):
|
||||
|
@ -22,19 +22,23 @@ def example(options):
|
|||
coreemu = CoreEmu()
|
||||
session = coreemu.create_session()
|
||||
|
||||
# must be in configuration state for nodes to start, when using "node_add" below
|
||||
session.set_state(EventTypes.CONFIGURATION_STATE.value)
|
||||
|
||||
# create wlan network node
|
||||
wlan_network = session.create_node(cls=WlanNode)
|
||||
coreemu.set_wireless_model(wlan_network, BasicRangeModel)
|
||||
wlan = session.add_node(_type=NodeTypes.WIRELESS_LAN)
|
||||
coreemu.set_wireless_model(wlan, BasicRangeModel)
|
||||
|
||||
# create nodes
|
||||
wireless_nodes = []
|
||||
for _ in xrange(options.nodes):
|
||||
node = session.create_node(cls=CoreNode)
|
||||
coreemu.add_interface(wlan_network, node, prefixes)
|
||||
node = session.add_node()
|
||||
interface = prefixes.create_interface(node)
|
||||
session.add_link(node.objid, wlan.objid, interface_one=interface)
|
||||
wireless_nodes.append(node)
|
||||
|
||||
# link all created nodes with the wireless network
|
||||
coreemu.wireless_link_all(wlan_network, wireless_nodes)
|
||||
coreemu.wireless_link_all(wlan, wireless_nodes)
|
||||
|
||||
# instantiate session
|
||||
session.instantiate()
|
Loading…
Add table
Add a link
Reference in a new issue