from core.emane.ieee80211abg import EmaneIeee80211abgModel
from core.emane.nodes import EmaneNet
from core.emulator.coreemu import CoreEmu
from core.emulator.data import IpPrefixes, NodeOptions
from core.emulator.enumerations import EventTypes
from core.nodes.base import CoreNode
ip_prefixes = IpPrefixes(ip4_prefix="10.0.0.0/24")
coreemu = CoreEmu()
session = coreemu.create_session()
session.location.setrefgeo(47.57917, -122.13232, 2.0)
session.location.refscale = 150.0
session.set_state(EventTypes.CONFIGURATION_STATE)
options = NodeOptions(x=200, y=200, emane=EmaneIeee80211abgModel.name)
emane = session.add_node(EmaneNet, options=options)
options = NodeOptions(model="mdr", x=100, y=100)
n1 = session.add_node(CoreNode, options=options)
options = NodeOptions(model="mdr", x=300, y=100)
n2 = session.add_node(CoreNode, options=options)
config = session.emane.get_configs()
config.update({"eventservicettl": "2"})
session.emane.set_model_config(
emane.id, EmaneIeee80211abgModel.name, {"unicastrate": "3"}
)
iface1 = ip_prefixes.create_iface(n1)
session.add_link(n1.id, emane.id, iface1)
iface1 = ip_prefixes.create_iface(n2)
session.add_link(n2.id, emane.id, iface1)
session.instantiate()
input("press enter to shutdown")
session.shutdown()