refactored some future naming to be more consistent, added new data objects to pass into coreemu api to help make scripting easier, set sessions to master by default now

This commit is contained in:
Blake J. Harnden 2018-04-24 16:24:54 -07:00
parent 1404ca19c5
commit 3ea885e2eb
9 changed files with 550 additions and 449 deletions

View file

@ -6,12 +6,13 @@ import datetime
import parser
from core.emane.ieee80211abg import EmaneIeee80211abgModel
from core.future.coreemu import FutureIpv4Prefix, CoreEmu
from core.future.coreemu import CoreEmu
from core.future.futuredata import IpPrefixes
def example(options):
# ip generator for example
prefix = FutureIpv4Prefix("10.83.0.0/16")
prefixes = IpPrefixes(ip4_prefix="10.83.0.0/16")
# create emulator instance for creating sessions and utility methods
coreemu = CoreEmu()
@ -27,8 +28,8 @@ def example(options):
# create nodes
for i in xrange(options.nodes):
node = session.create_emane_node()
coreemu.add_interface(emane_network, node, prefix)
node.setposition(x=150 * (i + 1), y=150)
coreemu.add_interface(emane_network, node, prefixes)
# instantiate session
session.instantiate()
@ -39,7 +40,7 @@ def example(options):
# shutdown session
raw_input("press enter to exit...")
session.shutdown()
coreemu.shutdown()
def main():

View file

@ -8,13 +8,14 @@
import datetime
import parser
from core.future.coreemu import FutureIpv4Prefix, CoreEmu
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
prefix = FutureIpv4Prefix("10.83.0.0/16")
prefixes = IpPrefixes("10.83.0.0/16")
# create emulator instance for creating sessions and utility methods
coreemu = CoreEmu()
@ -26,7 +27,7 @@ def example(options):
# create nodes
for _ in xrange(options.nodes):
node = session.create_node(cls=CoreNode)
coreemu.add_interface(switch_network, node, prefix)
coreemu.add_interface(switch_network, node, prefixes)
# instantiate session
session.instantiate()
@ -37,13 +38,13 @@ def example(options):
print "starting iperf server on node: %s" % first_node.name
first_node.cmd(["iperf", "-s", "-D"])
address = str(prefix.addr(first_node.objid))
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
session.shutdown()
coreemu.shutdown()
def main():

View file

@ -8,41 +8,32 @@
import datetime
import parser
from core.data import NodeData, LinkData
from core.enumerations import NodeTypes, EventTypes
from core.future.coreemu import FutureIpv4Prefix, CoreEmu
from core.future.coreemu import CoreEmu
from core.future.futuredata import IpPrefixes, NodeOptions
def example(options):
# ip generator for example
prefix = FutureIpv4Prefix("10.83.0.0/16")
prefixes = IpPrefixes(ip4_prefix="10.83.0.0/16")
# create emulator instance for creating sessions and utility methods
coreemu = 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_data = NodeData(node_type=NodeTypes.SWITCH.value)
switch_id = session.node_add(node_data)
node_options = NodeOptions(_type=NodeTypes.SWITCH)
switch = session.add_node(node_options)
# create nodes
for _ in xrange(options.nodes):
node_data = NodeData(node_type=NodeTypes.DEFAULT.value)
node_id = session.node_add(node_data)
node = session.get_object(node_id)
inteface_index = node.newifindex()
address = prefix.addr(node_id)
link_data = LinkData(
node1_id=node_id,
node2_id=switch_id,
interface1_id=inteface_index,
interface1_ip4=str(address),
interface1_ip4_mask=prefix.prefixlen,
)
session.link_add(link_data)
node_options = NodeOptions(_type=NodeTypes.DEFAULT)
node = session.add_node(node_options)
interface = prefixes.create_interface(node)
session.add_link(node.objid, switch.objid, interface_one=interface)
# instantiate session
session.instantiate()
@ -53,9 +44,9 @@ def example(options):
print "starting iperf server on node: %s" % first_node.name
first_node.cmd(["iperf", "-s", "-D"])
address = str(prefix.addr(first_node.objid))
print "node %s connecting to %s" % (last_node.name, address)
last_node.client.icmd(["iperf", "-t", str(options.time), "-c", address])
first_node_address = prefixes.ip4_address(first_node)
print "node %s connecting to %s" % (last_node.name, first_node_address)
last_node.client.icmd(["iperf", "-t", str(options.time), "-c", first_node_address])
first_node.cmd(["killall", "-9", "iperf"])
# shutdown session

View file

@ -5,17 +5,13 @@
# and repeat for minnodes <= n <= maxnodes with a step size of
# nodestep
import datetime
import parser
from core.data import NodeData, LinkData
from core.enumerations import NodeTypes, EventTypes
from core.future.coreemu import FutureIpv4Prefix, CoreEmu
from core.future.futuredata import IpPrefixes, NodeOptions
def example(nodes):
# ip generator for example
prefix = FutureIpv4Prefix("10.83.0.0/16")
prefixes = IpPrefixes("10.83.0.0/16")
# create emulator instance for creating sessions and utility methods
coreemu = globals()["coreemu"]
@ -25,24 +21,15 @@ def example(nodes):
session.set_state(EventTypes.CONFIGURATION_STATE.value)
# create switch network node
node_data = NodeData(node_type=NodeTypes.SWITCH.value)
switch_id = session.node_add(node_data)
node_options = NodeOptions(_type=NodeTypes.SWITCH)
switch = session.add_node(node_options)
# create nodes
for _ in xrange(nodes):
node_data = NodeData(node_type=NodeTypes.DEFAULT.value)
node_id = session.node_add(node_data)
node = session.get_object(node_id)
inteface_index = node.newifindex()
address = prefix.addr(node_id)
link_data = LinkData(
node1_id=node_id,
node2_id=switch_id,
interface1_id=inteface_index,
interface1_ip4=str(address),
interface1_ip4_mask=prefix.prefixlen,
)
session.link_add(link_data)
node_options = NodeOptions(_type=NodeTypes.DEFAULT.value)
node = session.add_node(node_options)
interface = prefixes.create_interface(node)
session.add_link(node.objid, switch.objid, interface_one=interface)
# instantiate session
session.instantiate()

View file

@ -8,14 +8,15 @@
import datetime
import parser
from core.future.coreemu import FutureIpv4Prefix, CoreEmu
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):
# ip generator for example
prefix = FutureIpv4Prefix("10.83.0.0/16")
prefixes = IpPrefixes("10.83.0.0/16")
# create emulator instance for creating sessions and utility methods
coreemu = CoreEmu()
@ -29,7 +30,7 @@ def example(options):
wireless_nodes = []
for _ in xrange(options.nodes):
node = session.create_node(cls=CoreNode)
coreemu.add_interface(wlan_network, node, prefix)
coreemu.add_interface(wlan_network, node, prefixes)
wireless_nodes.append(node)
# link all created nodes with the wireless network
@ -44,13 +45,13 @@ def example(options):
print "starting iperf server on node: %s" % first_node.name
first_node.cmd(["iperf", "-s", "-D"])
address = str(prefix.addr(first_node.objid))
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
session.shutdown()
coreemu.shutdown()
def main():