updated distributed python examples a bit to clean things up

This commit is contained in:
Blake Harnden 2019-10-21 11:36:59 -07:00
parent 78f981463d
commit 630b44627c
11 changed files with 46 additions and 167 deletions

View file

@ -1,17 +1,13 @@
import logging import logging
import pdb
import sys
import distributed_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, NodeOptions from core.emulator.emudata import IpPrefixes, NodeOptions
from core.emulator.enumerations import EventTypes, NodeTypes from core.emulator.enumerations import EventTypes, NodeTypes
def main(): def main(args):
address = sys.argv[1]
remote = sys.argv[2]
# 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")
@ -20,14 +16,14 @@ def main():
{ {
"controlnet": "core1:172.16.1.0/24 core2:172.16.2.0/24 core3:172.16.3.0/24 " "controlnet": "core1:172.16.1.0/24 core2:172.16.2.0/24 core3:172.16.3.0/24 "
"core4:172.16.4.0/24 core5:172.16.5.0/24", "core4:172.16.4.0/24 core5:172.16.5.0/24",
"distributed_address": address, "distributed_address": args.address,
} }
) )
session = coreemu.create_session() session = coreemu.create_session()
# initialize distributed # initialize distributed
server_name = "core2" server_name = "core2"
session.distributed.add_server(server_name, remote) session.distributed.add_server(server_name, args.server)
# must be in configuration state for nodes to start, when using "node_add" below # must be in configuration state for nodes to start, when using "node_add" below
session.set_state(EventTypes.CONFIGURATION_STATE) session.set_state(EventTypes.CONFIGURATION_STATE)
@ -48,13 +44,10 @@ def main():
session.add_link(node_two.id, emane_net.id, interface_one=interface_two) session.add_link(node_two.id, emane_net.id, interface_one=interface_two)
# instantiate session # instantiate session
try: session.instantiate()
session.instantiate()
except Exception:
logging.exception("error during instantiate")
# pause script for verification # pause script for verification
pdb.set_trace() input("press enter for shutdown")
# shutdown session # shutdown session
coreemu.shutdown() coreemu.shutdown()
@ -62,4 +55,5 @@ def main():
if __name__ == "__main__": if __name__ == "__main__":
logging.basicConfig(level=logging.INFO) logging.basicConfig(level=logging.INFO)
main() args = distributed_parser.parse(__file__)
main(args)

View file

@ -1,26 +1,22 @@
import logging import logging
import pdb
import sys
import distributed_parser
from core.emulator.coreemu import CoreEmu from core.emulator.coreemu import CoreEmu
from core.emulator.emudata import IpPrefixes, NodeOptions from core.emulator.emudata import IpPrefixes, NodeOptions
from core.emulator.enumerations import EventTypes, NodeTypes from core.emulator.enumerations import EventTypes, NodeTypes
def main(): def main(args):
address = sys.argv[1]
remote = sys.argv[2]
# 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")
# create emulator instance for creating sessions and utility methods # create emulator instance for creating sessions and utility methods
coreemu = CoreEmu({"distributed_address": address}) coreemu = CoreEmu({"distributed_address": args.address})
session = coreemu.create_session() session = coreemu.create_session()
# initialize distributed # initialize distributed
server_name = "core2" server_name = "core2"
session.distributed.add_server(server_name, remote) session.distributed.add_server(server_name, args.server)
# must be in configuration state for nodes to start, when using "node_add" below # must be in configuration state for nodes to start, when using "node_add" below
session.set_state(EventTypes.CONFIGURATION_STATE) session.set_state(EventTypes.CONFIGURATION_STATE)
@ -40,7 +36,7 @@ def main():
session.instantiate() session.instantiate()
# pause script for verification # pause script for verification
pdb.set_trace() input("press enter for shutdown")
# shutdown session # shutdown session
coreemu.shutdown() coreemu.shutdown()
@ -48,4 +44,5 @@ def main():
if __name__ == "__main__": if __name__ == "__main__":
logging.basicConfig(level=logging.INFO) logging.basicConfig(level=logging.INFO)
main() args = distributed_parser.parse(__file__)
main(args)

View file

@ -0,0 +1,15 @@
import argparse
def parse(name):
parser = argparse.ArgumentParser(description=f"Run {name} example")
parser.add_argument(
"-a",
"--address",
help="local address that distributed servers will use for gre tunneling",
)
parser.add_argument(
"-s", "--server", help="distributed server to use for creating nodes"
)
options = parser.parse_args()
return options

View file

@ -1,26 +1,22 @@
import logging import logging
import pdb
import sys
import distributed_parser
from core.emulator.coreemu import CoreEmu from core.emulator.coreemu import CoreEmu
from core.emulator.emudata import IpPrefixes, NodeOptions from core.emulator.emudata import IpPrefixes, NodeOptions
from core.emulator.enumerations import EventTypes from core.emulator.enumerations import EventTypes
def main(): def main(args):
address = sys.argv[1]
remote = sys.argv[2]
# 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")
# create emulator instance for creating sessions and utility methods # create emulator instance for creating sessions and utility methods
coreemu = CoreEmu({"distributed_address": address}) coreemu = CoreEmu({"distributed_address": args.address})
session = coreemu.create_session() session = coreemu.create_session()
# initialize distributed # initialize distributed
server_name = "core2" server_name = "core2"
session.distributed.add_server(server_name, remote) session.distributed.add_server(server_name, args.server)
# must be in configuration state for nodes to start, when using "node_add" below # must be in configuration state for nodes to start, when using "node_add" below
session.set_state(EventTypes.CONFIGURATION_STATE) session.set_state(EventTypes.CONFIGURATION_STATE)
@ -40,7 +36,7 @@ def main():
session.instantiate() session.instantiate()
# pause script for verification # pause script for verification
pdb.set_trace() input("press enter for shutdown")
# shutdown session # shutdown session
coreemu.shutdown() coreemu.shutdown()
@ -48,4 +44,5 @@ def main():
if __name__ == "__main__": if __name__ == "__main__":
logging.basicConfig(level=logging.INFO) logging.basicConfig(level=logging.INFO)
main() args = distributed_parser.parse(__file__)
main(args)

View file

@ -1,26 +1,24 @@
import logging import logging
import pdb
import sys
import distributed_parser
from core.emulator.coreemu import CoreEmu from core.emulator.coreemu import CoreEmu
from core.emulator.emudata import IpPrefixes, NodeOptions from core.emulator.emudata import IpPrefixes, NodeOptions
from core.emulator.enumerations import EventTypes, NodeTypes from core.emulator.enumerations import EventTypes, NodeTypes
def main(): def main(args):
address = sys.argv[1]
remote = sys.argv[2]
# 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")
# create emulator instance for creating sessions and utility methods # create emulator instance for creating sessions and utility methods
coreemu = CoreEmu({"controlnet": "172.16.0.0/24", "distributed_address": address}) coreemu = CoreEmu(
{"controlnet": "172.16.0.0/24", "distributed_address": args.address}
)
session = coreemu.create_session() session = coreemu.create_session()
# initialize distributed # initialize distributed
server_name = "core2" server_name = "core2"
session.distributed.add_server(server_name, remote) session.distributed.add_server(server_name, args.server)
# must be in configuration state for nodes to start, when using "node_add" below # must be in configuration state for nodes to start, when using "node_add" below
session.set_state(EventTypes.CONFIGURATION_STATE) session.set_state(EventTypes.CONFIGURATION_STATE)
@ -42,7 +40,7 @@ def main():
session.instantiate() session.instantiate()
# pause script for verification # pause script for verification
pdb.set_trace() input("press enter for shutdown")
# shutdown session # shutdown session
coreemu.shutdown() coreemu.shutdown()
@ -50,4 +48,5 @@ def main():
if __name__ == "__main__": if __name__ == "__main__":
logging.basicConfig(level=logging.INFO) logging.basicConfig(level=logging.INFO)
main() args = distributed_parser.parse(__file__)
main(args)

View file

@ -1,43 +0,0 @@
import logging
import pdb
import sys
from core.emulator.coreemu import CoreEmu
from core.emulator.enumerations import EventTypes, NodeTypes
def main():
address = sys.argv[1]
remote = sys.argv[2]
# create emulator instance for creating sessions and utility methods
coreemu = CoreEmu({"distributed_address": address})
session = coreemu.create_session()
# initialize distributed
server_name = "core2"
session.distributed.add_server(server_name, remote)
# must be in configuration state for nodes to start, when using "node_add" below
session.set_state(EventTypes.CONFIGURATION_STATE)
# create local node, switch, and remote nodes
switch_one = session.add_node(_type=NodeTypes.SWITCH)
switch_two = session.add_node(_type=NodeTypes.SWITCH)
# create node interfaces and link
session.add_link(switch_one.id, switch_two.id)
# instantiate session
session.instantiate()
# pause script for verification
pdb.set_trace()
# shutdown session
coreemu.shutdown()
if __name__ == "__main__":
logging.basicConfig(level=logging.INFO)
main()

View file

@ -1,56 +0,0 @@
import logging
import pdb
import sys
from core.emulator.coreemu import CoreEmu
from core.emulator.emudata import IpPrefixes, NodeOptions
from core.emulator.enumerations import EventTypes, NodeTypes
from core.location.mobility import BasicRangeModel
def main():
address = sys.argv[1]
remote = sys.argv[2]
# ip generator for example
prefixes = IpPrefixes(ip4_prefix="10.83.0.0/16")
# create emulator instance for creating sessions and utility methods
coreemu = CoreEmu({"distributed_address": address})
session = coreemu.create_session()
# initialize distributed
server_name = "core2"
session.distributed.add_server(server_name, remote)
# must be in configuration state for nodes to start, when using "node_add" below
session.set_state(EventTypes.CONFIGURATION_STATE)
# create local node, switch, and remote nodes
options = NodeOptions()
options.set_position(0, 0)
options.emulation_server = server_name
node_one = session.add_node(node_options=options)
wlan = session.add_node(_type=NodeTypes.WIRELESS_LAN)
session.mobility.set_model(wlan, BasicRangeModel)
node_two = session.add_node(node_options=options)
# create node interfaces and link
interface_one = prefixes.create_interface(node_one)
interface_two = prefixes.create_interface(node_two)
session.add_link(node_one.id, wlan.id, interface_one=interface_one)
session.add_link(node_two.id, wlan.id, interface_one=interface_two)
# instantiate session
session.instantiate()
# pause script for verification
pdb.set_trace()
# shutdown session
coreemu.shutdown()
if __name__ == "__main__":
logging.basicConfig(level=logging.INFO)
main()

View file

@ -1,7 +1,3 @@
#!/usr/bin/python -i
#
# Example CORE Python script that attaches N nodes to an EMANE 802.11abg network.
import datetime import datetime
import logging import logging
import parser import parser

View file

@ -1,10 +1,3 @@
#!/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 datetime
import logging import logging
import parser import parser

View file

@ -1,9 +1,3 @@
#!/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 logging import logging
from core.emulator.emudata import IpPrefixes from core.emulator.emudata import IpPrefixes

View file

@ -1,10 +1,3 @@
#!/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 datetime
import logging import logging
import parser import parser