docs: adding tutorial 7
This commit is contained in:
parent
c554983436
commit
2176fcc5a3
7 changed files with 523 additions and 0 deletions
52
package/examples/tutorials/tutorial7/scenario.py
Normal file
52
package/examples/tutorials/tutorial7/scenario.py
Normal file
|
@ -0,0 +1,52 @@
|
|||
from core.api.grpc import client
|
||||
from core.api.grpc.wrappers import Position, Interface, NodeType
|
||||
from core.emane.models.ieee80211abg import EmaneIeee80211abgModel
|
||||
|
||||
|
||||
def main():
|
||||
# interface helper
|
||||
iface_helper = client.InterfaceHelper(ip4_prefix="10.0.0.0/24", ip6_prefix="2001::/64")
|
||||
|
||||
# create grpc client and connect
|
||||
core = client.CoreGrpcClient()
|
||||
core.connect()
|
||||
|
||||
# create session
|
||||
session = core.create_session()
|
||||
|
||||
# create nodes
|
||||
position = Position(x=375, y=500)
|
||||
emane_net = session.add_node(
|
||||
_id=1,
|
||||
_type=NodeType.EMANE,
|
||||
name="emane1",
|
||||
position=position,
|
||||
emane=EmaneIeee80211abgModel.name
|
||||
)
|
||||
position = Position(x=250, y=250)
|
||||
node2 = session.add_node(_id=2, model="mdr", name="n2", position=position)
|
||||
position = Position(x=500, y=250)
|
||||
node3 = session.add_node(_id=3, model="mdr", name="n3", position=position)
|
||||
|
||||
# create links to emane
|
||||
node2_iface = iface_helper.create_iface(node_id=node2.id, iface_id=0)
|
||||
node2_iface.ip4 = "10.0.0.1"
|
||||
node2_iface.ip4_mask = 32
|
||||
node2_iface.ip6 = "2001::1"
|
||||
node2_iface.ip6_mask = 128
|
||||
# emane_iface1 = Interface(id=0)
|
||||
session.add_link(node1=node2, node2=emane_net, iface1=node2_iface)
|
||||
node3_iface = iface_helper.create_iface(node_id=node3.id, iface_id=0)
|
||||
node3_iface.ip4 = "10.0.0.2"
|
||||
node3_iface.ip4_mask = 32
|
||||
node3_iface.ip6 = "2001::2"
|
||||
node3_iface.ip6_mask = 128
|
||||
# emane_iface2 = Interface(id=1)
|
||||
session.add_link(node1=node3, node2=emane_net, iface1=node3_iface)
|
||||
|
||||
# start session
|
||||
core.start_session(session=session)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
90
package/examples/tutorials/tutorial7/scenario.xml
Normal file
90
package/examples/tutorials/tutorial7/scenario.xml
Normal file
|
@ -0,0 +1,90 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<scenario name="/tmp/tmpmewk97ls">
|
||||
<networks>
|
||||
<network id="1" name="emane1" icon="" canvas="1" model="emane_ieee80211abg" type="EMANE">
|
||||
<position x="375.0" y="500.0" />
|
||||
</network>
|
||||
</networks>
|
||||
<devices>
|
||||
<device id="2" name="n2" icon="" canvas="1" type="mdr" class="" image="">
|
||||
<position x="250.0" y="250.0" />
|
||||
<configservices>
|
||||
<service name="zebra"/>
|
||||
<service name="OSPFv3MDR"/>
|
||||
<service name="IPForward"/>
|
||||
</configservices>
|
||||
</device>
|
||||
<device id="3" name="n3" icon="" canvas="1" type="mdr" class="" image="">
|
||||
<position x="500.0" y="250.0" />
|
||||
<configservices>
|
||||
<service name="zebra"/>
|
||||
<service name="OSPFv3MDR"/>
|
||||
<service name="IPForward"/>
|
||||
</configservices>
|
||||
</device>
|
||||
</devices>
|
||||
<links>
|
||||
<link node1="2" node2="1">
|
||||
<iface1 nem="1" id="0" name="eth0" mac="02:02:00:00:00:01" ip4="10.0.0.1" ip4_mask="32" ip6="2001::1" ip6_mask="128"/>
|
||||
</link>
|
||||
<link node1="3" node2="1">
|
||||
<iface1 nem="2" id="0" name="eth0" mac="02:02:00:00:00:02" ip4="10.0.0.2" ip4_mask="32" ip6="2001::2" ip6_mask="128"/>
|
||||
</link>
|
||||
</links>
|
||||
<configservice_configurations>
|
||||
<service name="zebra" node="2"/>
|
||||
<service name="OSPFv3MDR" node="2"/>
|
||||
<service name="IPForward" node="2"/>
|
||||
<service name="zebra" node="3"/>
|
||||
<service name="OSPFv3MDR" node="3"/>
|
||||
<service name="IPForward" node="3"/>
|
||||
</configservice_configurations>
|
||||
<session_origin lat="47.579166412353516" lon="-122.13232421875" alt="2.0" scale="150.0"/>
|
||||
<session_options>
|
||||
<configuration name="controlnet" value=""/>
|
||||
<configuration name="controlnet0" value=""/>
|
||||
<configuration name="controlnet1" value=""/>
|
||||
<configuration name="controlnet2" value=""/>
|
||||
<configuration name="controlnet3" value=""/>
|
||||
<configuration name="controlnet_updown_script" value=""/>
|
||||
<configuration name="enablerj45" value="1"/>
|
||||
<configuration name="preservedir" value="0"/>
|
||||
<configuration name="enablesdt" value="0"/>
|
||||
<configuration name="sdturl" value="tcp://127.0.0.1:50000/"/>
|
||||
<configuration name="ovs" value="0"/>
|
||||
<configuration name="platform_id_start" value="1"/>
|
||||
<configuration name="nem_id_start" value="1"/>
|
||||
<configuration name="link_enabled" value="1"/>
|
||||
<configuration name="loss_threshold" value="30"/>
|
||||
<configuration name="link_interval" value="1"/>
|
||||
<configuration name="link_timeout" value="4"/>
|
||||
<configuration name="mtu" value="0"/>
|
||||
</session_options>
|
||||
<session_metadata>
|
||||
<configuration name="shapes" value="[]"/>
|
||||
<configuration name="edges" value="[]"/>
|
||||
<configuration name="hidden" value="[]"/>
|
||||
<configuration name="canvas" value="{"gridlines": true, "canvases": [{"id": 1, "wallpaper": null, "wallpaper_style": 1, "fit_image": false, "dimensions": [1000, 750]}]}"/>
|
||||
</session_metadata>
|
||||
<default_services>
|
||||
<node type="mdr">
|
||||
<service name="zebra"/>
|
||||
<service name="OSPFv3MDR"/>
|
||||
<service name="IPForward"/>
|
||||
</node>
|
||||
<node type="PC">
|
||||
<service name="DefaultRoute"/>
|
||||
</node>
|
||||
<node type="prouter"/>
|
||||
<node type="router">
|
||||
<service name="zebra"/>
|
||||
<service name="OSPFv2"/>
|
||||
<service name="OSPFv3"/>
|
||||
<service name="IPForward"/>
|
||||
</node>
|
||||
<node type="host">
|
||||
<service name="DefaultRoute"/>
|
||||
<service name="SSH"/>
|
||||
</node>
|
||||
</default_services>
|
||||
</scenario>
|
53
package/examples/tutorials/tutorial7/scenario_service.py
Normal file
53
package/examples/tutorials/tutorial7/scenario_service.py
Normal file
|
@ -0,0 +1,53 @@
|
|||
from core.api.grpc import client
|
||||
from core.api.grpc.wrappers import Position, Interface, NodeType
|
||||
from core.emane.models.ieee80211abg import EmaneIeee80211abgModel
|
||||
|
||||
|
||||
def main():
|
||||
# interface helper
|
||||
iface_helper = client.InterfaceHelper(ip4_prefix="10.0.0.0/24", ip6_prefix="2001::/64")
|
||||
|
||||
# create grpc client and connect
|
||||
core = client.CoreGrpcClient()
|
||||
core.connect()
|
||||
|
||||
# create session
|
||||
session = core.create_session()
|
||||
|
||||
# create nodes
|
||||
position = Position(x=375, y=500)
|
||||
emane_net = session.add_node(
|
||||
_id=1,
|
||||
_type=NodeType.EMANE,
|
||||
name="emane1",
|
||||
position=position,
|
||||
emane=EmaneIeee80211abgModel.name
|
||||
)
|
||||
position = Position(x=250, y=250)
|
||||
node2 = session.add_node(_id=2, model="mdr", name="n2", position=position)
|
||||
node2.config_services.add("ChatApp Server")
|
||||
position = Position(x=500, y=250)
|
||||
node3 = session.add_node(_id=3, model="mdr", name="n3", position=position)
|
||||
|
||||
# create links to emane
|
||||
node2_iface = iface_helper.create_iface(node_id=node2.id, iface_id=0)
|
||||
node2_iface.ip4 = "10.0.0.1"
|
||||
node2_iface.ip4_mask = 32
|
||||
node2_iface.ip6 = "2001::1"
|
||||
node2_iface.ip6_mask = 128
|
||||
# emane_iface1 = Interface(id=0)
|
||||
session.add_link(node1=node2, node2=emane_net, iface1=node2_iface)
|
||||
node3_iface = iface_helper.create_iface(node_id=node3.id, iface_id=0)
|
||||
node3_iface.ip4 = "10.0.0.2"
|
||||
node3_iface.ip4_mask = 32
|
||||
node3_iface.ip6 = "2001::2"
|
||||
node3_iface.ip6_mask = 128
|
||||
# emane_iface2 = Interface(id=1)
|
||||
session.add_link(node1=node3, node2=emane_net, iface1=node3_iface)
|
||||
|
||||
# start session
|
||||
core.start_session(session=session)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
91
package/examples/tutorials/tutorial7/scenario_service.xml
Normal file
91
package/examples/tutorials/tutorial7/scenario_service.xml
Normal file
|
@ -0,0 +1,91 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<scenario name="/tmp/tmpmewk97ls">
|
||||
<networks>
|
||||
<network id="1" name="emane1" icon="" canvas="1" model="emane_ieee80211abg" type="EMANE">
|
||||
<position x="375.0" y="500.0" />
|
||||
</network>
|
||||
</networks>
|
||||
<devices>
|
||||
<device id="2" name="n2" icon="" canvas="1" type="mdr" class="" image="">
|
||||
<position x="250.0" y="250.0" />
|
||||
<configservices>
|
||||
<service name="zebra"/>
|
||||
<service name="OSPFv3MDR"/>
|
||||
<service name="IPForward"/>
|
||||
<service name="ChatApp Server"/>
|
||||
</configservices>
|
||||
</device>
|
||||
<device id="3" name="n3" icon="" canvas="1" type="mdr" class="" image="">
|
||||
<position x="500.0" y="250.0" />
|
||||
<configservices>
|
||||
<service name="zebra"/>
|
||||
<service name="OSPFv3MDR"/>
|
||||
<service name="IPForward"/>
|
||||
</configservices>
|
||||
</device>
|
||||
</devices>
|
||||
<links>
|
||||
<link node1="2" node2="1">
|
||||
<iface1 nem="1" id="0" name="eth0" mac="02:02:00:00:00:01" ip4="10.0.0.1" ip4_mask="32" ip6="2001::1" ip6_mask="128"/>
|
||||
</link>
|
||||
<link node1="3" node2="1">
|
||||
<iface1 nem="2" id="0" name="eth0" mac="02:02:00:00:00:02" ip4="10.0.0.2" ip4_mask="32" ip6="2001::2" ip6_mask="128"/>
|
||||
</link>
|
||||
</links>
|
||||
<configservice_configurations>
|
||||
<service name="zebra" node="2"/>
|
||||
<service name="OSPFv3MDR" node="2"/>
|
||||
<service name="IPForward" node="2"/>
|
||||
<service name="zebra" node="3"/>
|
||||
<service name="OSPFv3MDR" node="3"/>
|
||||
<service name="IPForward" node="3"/>
|
||||
</configservice_configurations>
|
||||
<session_origin lat="47.579166412353516" lon="-122.13232421875" alt="2.0" scale="150.0"/>
|
||||
<session_options>
|
||||
<configuration name="controlnet" value=""/>
|
||||
<configuration name="controlnet0" value=""/>
|
||||
<configuration name="controlnet1" value=""/>
|
||||
<configuration name="controlnet2" value=""/>
|
||||
<configuration name="controlnet3" value=""/>
|
||||
<configuration name="controlnet_updown_script" value=""/>
|
||||
<configuration name="enablerj45" value="1"/>
|
||||
<configuration name="preservedir" value="0"/>
|
||||
<configuration name="enablesdt" value="0"/>
|
||||
<configuration name="sdturl" value="tcp://127.0.0.1:50000/"/>
|
||||
<configuration name="ovs" value="0"/>
|
||||
<configuration name="platform_id_start" value="1"/>
|
||||
<configuration name="nem_id_start" value="1"/>
|
||||
<configuration name="link_enabled" value="1"/>
|
||||
<configuration name="loss_threshold" value="30"/>
|
||||
<configuration name="link_interval" value="1"/>
|
||||
<configuration name="link_timeout" value="4"/>
|
||||
<configuration name="mtu" value="0"/>
|
||||
</session_options>
|
||||
<session_metadata>
|
||||
<configuration name="shapes" value="[]"/>
|
||||
<configuration name="edges" value="[]"/>
|
||||
<configuration name="hidden" value="[]"/>
|
||||
<configuration name="canvas" value="{"gridlines": true, "canvases": [{"id": 1, "wallpaper": null, "wallpaper_style": 1, "fit_image": false, "dimensions": [1000, 750]}]}"/>
|
||||
</session_metadata>
|
||||
<default_services>
|
||||
<node type="mdr">
|
||||
<service name="zebra"/>
|
||||
<service name="OSPFv3MDR"/>
|
||||
<service name="IPForward"/>
|
||||
</node>
|
||||
<node type="PC">
|
||||
<service name="DefaultRoute"/>
|
||||
</node>
|
||||
<node type="prouter"/>
|
||||
<node type="router">
|
||||
<service name="zebra"/>
|
||||
<service name="OSPFv2"/>
|
||||
<service name="OSPFv3"/>
|
||||
<service name="IPForward"/>
|
||||
</node>
|
||||
<node type="host">
|
||||
<service name="DefaultRoute"/>
|
||||
<service name="SSH"/>
|
||||
</node>
|
||||
</default_services>
|
||||
</scenario>
|
Loading…
Add table
Add a link
Reference in a new issue