removed session.create_wireless_node, can be achieved simply without needing this function

This commit is contained in:
Blake Harnden 2019-10-22 15:13:28 -07:00
parent c1bb9ed5d8
commit ce411a07d7
9 changed files with 56 additions and 74 deletions

View file

@ -585,7 +585,7 @@ class EmaneManager(ModelManager):
args = f"{emanecmd} -f {log_file} {platform_xml}" args = f"{emanecmd} -f {log_file} {platform_xml}"
output = node.cmd(args) output = node.cmd(args)
logging.info("node(%s) emane daemon running: %s", node.name, args) logging.info("node(%s) emane daemon running: %s", node.name, args)
logging.info("node(%s) emane daemon output: %s", node.name, output) logging.debug("node(%s) emane daemon output: %s", node.name, output)
if not run_emane_on_host: if not run_emane_on_host:
return return

View file

@ -908,22 +908,6 @@ class Session(object):
""" """
self.mobility.handleevent(event_data) self.mobility.handleevent(event_data)
def create_wireless_node(self, _id=None, node_options=None):
"""
Create a wireless node for use within an wireless/EMANE networks.
:param int _id: int for node, defaults to None and will be generated
:param core.emulator.emudata.NodeOptions node_options: options for emane node, model will always be "mdr"
:return: new emane node
:rtype: core.nodes.network.WlanNode
"""
if not node_options:
node_options = NodeOptions()
node_options.model = "mdr"
return self.add_node(
_type=NodeTypes.DEFAULT, _id=_id, node_options=node_options
)
def create_emane_network( def create_emane_network(
self, self,
model, model,

View file

@ -4,11 +4,11 @@ import parser
from core.emane.ieee80211abg import EmaneIeee80211abgModel from core.emane.ieee80211abg import EmaneIeee80211abgModel
from core.emulator.coreemu import CoreEmu from core.emulator.coreemu import CoreEmu
from core.emulator.emudata import IpPrefixes from core.emulator.emudata import IpPrefixes, NodeOptions
from core.emulator.enumerations import EventTypes from core.emulator.enumerations import EventTypes
def example(options): def example(args):
# ip generator for example # ip generator for example
prefixes = IpPrefixes(ip4_prefix="10.83.0.0/16") prefixes = IpPrefixes(ip4_prefix="10.83.0.0/16")
@ -26,8 +26,9 @@ def example(options):
emane_network.setposition(x=80, y=50) emane_network.setposition(x=80, y=50)
# create nodes # create nodes
for i in range(options.nodes): options = NodeOptions(model="mdr")
node = session.create_wireless_node() for i in range(args.nodes):
node = session.add_node(node_options=options)
node.setposition(x=150 * (i + 1), y=150) node.setposition(x=150 * (i + 1), y=150)
interface = prefixes.create_interface(node) interface = prefixes.create_interface(node)
session.add_link(node.id, emane_network.id, interface_one=interface) session.add_link(node.id, emane_network.id, interface_one=interface)
@ -42,12 +43,12 @@ def example(options):
def main(): def main():
logging.basicConfig(level=logging.INFO) logging.basicConfig(level=logging.INFO)
options = parser.parse_options("emane80211") args = parser.parse("emane80211")
start = datetime.datetime.now() start = datetime.datetime.now()
logging.info( logging.info(
"running emane 80211 example: nodes(%s) time(%s)", options.nodes, options.time "running emane 80211 example: nodes(%s) time(%s)", args.nodes, args.time
) )
example(options) example(args)
logging.info("elapsed time: %s", datetime.datetime.now() - start) logging.info("elapsed time: %s", datetime.datetime.now() - start)

View file

@ -5,7 +5,7 @@ DEFAULT_TIME = 10
DEFAULT_STEP = 1 DEFAULT_STEP = 1
def parse_options(name): def parse(name):
parser = argparse.ArgumentParser(description=f"Run {name} example") parser = argparse.ArgumentParser(description=f"Run {name} example")
parser.add_argument( parser.add_argument(
"-n", "-n",
@ -22,11 +22,11 @@ def parse_options(name):
help="example iperf run time in seconds", help="example iperf run time in seconds",
) )
options = parser.parse_args() args = parser.parse_args()
if options.nodes < 2: if args.nodes < 2:
parser.error(f"invalid min number of nodes: {options.nodes}") parser.error(f"invalid min number of nodes: {args.nodes}")
if options.time < 1: if args.time < 1:
parser.error(f"invalid test time: {options.time}") parser.error(f"invalid test time: {args.time}")
return options return args

View file

@ -7,7 +7,7 @@ from core.emulator.emudata import IpPrefixes
from core.emulator.enumerations import EventTypes, NodeTypes from core.emulator.enumerations import EventTypes, NodeTypes
def example(options): def example(args):
# ip generator for example # ip generator for example
prefixes = IpPrefixes(ip4_prefix="10.83.0.0/16") prefixes = IpPrefixes(ip4_prefix="10.83.0.0/16")
@ -22,7 +22,7 @@ def example(options):
switch = session.add_node(_type=NodeTypes.SWITCH) switch = session.add_node(_type=NodeTypes.SWITCH)
# create nodes # create nodes
for _ in range(options.nodes): for _ in range(args.nodes):
node = session.add_node() node = session.add_node()
interface = prefixes.create_interface(node) interface = prefixes.create_interface(node)
session.add_link(node.id, switch.id, interface_one=interface) session.add_link(node.id, switch.id, interface_one=interface)
@ -32,13 +32,13 @@ def example(options):
# get nodes to run example # get nodes to run example
first_node = session.get_node(2) first_node = session.get_node(2)
last_node = session.get_node(options.nodes + 1) last_node = session.get_node(args.nodes + 1)
logging.info("starting iperf server on node: %s", first_node.name) logging.info("starting iperf server on node: %s", first_node.name)
first_node.cmd("iperf -s -D") first_node.cmd("iperf -s -D")
first_node_address = prefixes.ip4_address(first_node) first_node_address = prefixes.ip4_address(first_node)
logging.info("node %s connecting to %s", last_node.name, first_node_address) logging.info("node %s connecting to %s", last_node.name, first_node_address)
output = last_node.cmd(f"iperf -t {options.time} -c {first_node_address}") output = last_node.cmd(f"iperf -t {args.time} -c {first_node_address}")
logging.info(output) logging.info(output)
first_node.cmd("killall -9 iperf") first_node.cmd("killall -9 iperf")
@ -48,12 +48,10 @@ def example(options):
def main(): def main():
logging.basicConfig(level=logging.INFO) logging.basicConfig(level=logging.INFO)
options = parser.parse_options("switch") args = parser.parse("switch")
start = datetime.datetime.now() start = datetime.datetime.now()
logging.info( logging.info("running switch example: nodes(%s) time(%s)", args.nodes, args.time)
"running switch example: nodes(%s) time(%s)", options.nodes, options.time example(args)
)
example(options)
logging.info("elapsed time: %s", datetime.datetime.now() - start) logging.info("elapsed time: %s", datetime.datetime.now() - start)

View file

@ -8,7 +8,7 @@ from core.emulator.enumerations import EventTypes, NodeTypes
from core.location.mobility import BasicRangeModel from core.location.mobility import BasicRangeModel
def example(options): def example(args):
# ip generator for example # ip generator for example
prefixes = IpPrefixes("10.83.0.0/16") prefixes = IpPrefixes("10.83.0.0/16")
@ -24,10 +24,10 @@ def example(options):
session.mobility.set_model(wlan, BasicRangeModel) session.mobility.set_model(wlan, BasicRangeModel)
# create nodes, must set a position for wlan basic range model # create nodes, must set a position for wlan basic range model
node_options = NodeOptions() options = NodeOptions(model="mdr")
node_options.set_position(0, 0) options.set_position(0, 0)
for _ in range(options.nodes): for _ in range(args.nodes):
node = session.add_node(node_options=node_options) node = session.add_node(node_options=options)
interface = prefixes.create_interface(node) interface = prefixes.create_interface(node)
session.add_link(node.id, wlan.id, interface_one=interface) session.add_link(node.id, wlan.id, interface_one=interface)
@ -36,13 +36,14 @@ def example(options):
# get nodes for example run # get nodes for example run
first_node = session.get_node(2) first_node = session.get_node(2)
last_node = session.get_node(options.nodes + 1) last_node = session.get_node(args.nodes + 1)
logging.info("starting iperf server on node: %s", first_node.name) logging.info("starting iperf server on node: %s", first_node.name)
first_node.cmd("iperf -s -D") first_node.cmd("iperf -s -D")
address = prefixes.ip4_address(first_node) address = prefixes.ip4_address(first_node)
logging.info("node %s connecting to %s", last_node.name, address) logging.info("node %s connecting to %s", last_node.name, address)
last_node.cmd(f"iperf -t {options.time} -c {address}") output = last_node.cmd(f"iperf -t {args.time} -c {address}")
logging.info(output)
first_node.cmd("killall -9 iperf") first_node.cmd("killall -9 iperf")
# shutdown session # shutdown session
@ -51,13 +52,11 @@ def example(options):
def main(): def main():
logging.basicConfig(level=logging.INFO) logging.basicConfig(level=logging.INFO)
options = parser.parse_options("wlan") args = parser.parse("wlan")
start = datetime.datetime.now() start = datetime.datetime.now()
logging.info( logging.info("running wlan example: nodes(%s) time(%s)", args.nodes, args.time)
"running wlan example: nodes(%s) time(%s)", options.nodes, options.time example(args)
)
example(options)
logging.info("elapsed time: %s", datetime.datetime.now() - start) logging.info("elapsed time: %s", datetime.datetime.now() - start)

View file

@ -60,11 +60,11 @@ class TestEmane:
) )
# create nodes # create nodes
node_options = NodeOptions() options = NodeOptions(model="mdr")
node_options.set_position(150, 150) options.set_position(150, 150)
node_one = session.create_wireless_node(node_options=node_options) node_one = session.add_node(node_options=options)
node_options.set_position(300, 150) options.set_position(300, 150)
node_two = session.create_wireless_node(node_options=node_options) node_two = session.add_node(node_options=options)
for i, node in enumerate([node_one, node_two]): for i, node in enumerate([node_one, node_two]):
node.setposition(x=150 * (i + 1), y=150) node.setposition(x=150 * (i + 1), y=150)
@ -95,11 +95,11 @@ class TestEmane:
emane_network.setposition(x=80, y=50) emane_network.setposition(x=80, y=50)
# create nodes # create nodes
node_options = NodeOptions() options = NodeOptions(model="mdr")
node_options.set_position(150, 150) options.set_position(150, 150)
node_one = session.create_wireless_node(node_options=node_options) node_one = session.add_node(node_options=options)
node_options.set_position(300, 150) options.set_position(300, 150)
node_two = session.create_wireless_node(node_options=node_options) node_two = session.add_node(node_options=options)
for i, node in enumerate([node_one, node_two]): for i, node in enumerate([node_one, node_two]):
node.setposition(x=150 * (i + 1), y=150) node.setposition(x=150 * (i + 1), y=150)

View file

@ -146,10 +146,10 @@ class TestCore:
session.mobility.set_model(wlan_node, BasicRangeModel) session.mobility.set_model(wlan_node, BasicRangeModel)
# create nodes # create nodes
node_options = NodeOptions() options = NodeOptions(model="mdr")
node_options.set_position(0, 0) options.set_position(0, 0)
node_one = session.create_wireless_node(node_options=node_options) node_one = session.add_node(node_options=options)
node_two = session.create_wireless_node(node_options=node_options) node_two = session.add_node(node_options=options)
# link nodes # link nodes
for node in [node_one, node_two]: for node in [node_one, node_two]:
@ -176,10 +176,10 @@ class TestCore:
session.mobility.set_model(wlan_node, BasicRangeModel) session.mobility.set_model(wlan_node, BasicRangeModel)
# create nodes # create nodes
node_options = NodeOptions() options = NodeOptions(model="mdr")
node_options.set_position(0, 0) options.set_position(0, 0)
node_one = session.create_wireless_node(node_options=node_options) node_one = session.add_node(node_options=options)
node_two = session.create_wireless_node(node_options=node_options) node_two = session.add_node(node_options=options)
# link nodes # link nodes
for node in [node_one, node_two]: for node in [node_one, node_two]:

View file

@ -174,10 +174,10 @@ class TestXml:
session.mobility.set_model(wlan_node, BasicRangeModel, {"test": "1"}) session.mobility.set_model(wlan_node, BasicRangeModel, {"test": "1"})
# create nodes # create nodes
node_options = NodeOptions() options = NodeOptions(model="mdr")
node_options.set_position(0, 0) options.set_position(0, 0)
node_one = session.create_wireless_node(node_options=node_options) node_one = session.add_node(node_options=options)
node_two = session.create_wireless_node(node_options=node_options) node_two = session.add_node(node_options=options)
# link nodes # link nodes
for node in [node_one, node_two]: for node in [node_one, node_two]: