docs: adding tutorial 2 and 3
This commit is contained in:
parent
0339073868
commit
d04f8d69d2
16 changed files with 685 additions and 5 deletions
39
package/examples/tutorials/tutorial2/scenario.py
Normal file
39
package/examples/tutorials/tutorial2/scenario.py
Normal file
|
@ -0,0 +1,39 @@
|
|||
from core.api.grpc import client
|
||||
from core.api.grpc.wrappers import NodeType, Position
|
||||
|
||||
|
||||
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()
|
||||
|
||||
# add session
|
||||
session = core.create_session()
|
||||
|
||||
# create nodes
|
||||
position = Position(x=200, y=200)
|
||||
wlan = session.add_node(1, name="wlan1", _type=NodeType.WIRELESS_LAN, position=position)
|
||||
position = Position(x=100, y=100)
|
||||
node1 = session.add_node(2, name="n2", model="mdr", position=position)
|
||||
position = Position(x=300, y=100)
|
||||
node2 = session.add_node(3, name="n3", model="mdr", position=position)
|
||||
position = Position(x=500, y=100)
|
||||
node3 = session.add_node(4, name="n4", model="mdr", position=position)
|
||||
|
||||
# create links
|
||||
iface1 = iface_helper.create_iface(node1.id, 0)
|
||||
session.add_link(node1=node1, node2=wlan, iface1=iface1)
|
||||
iface1 = iface_helper.create_iface(node2.id, 0)
|
||||
session.add_link(node1=node2, node2=wlan, iface1=iface1)
|
||||
iface1 = iface_helper.create_iface(node3.id, 0)
|
||||
session.add_link(node1=node3, node2=wlan, iface1=iface1)
|
||||
|
||||
# start session
|
||||
core.start_session(session)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
98
package/examples/tutorials/tutorial2/scenario.xml
Normal file
98
package/examples/tutorials/tutorial2/scenario.xml
Normal file
|
@ -0,0 +1,98 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<scenario name="/tmp/tmp3n8ocfk5">
|
||||
<networks>
|
||||
<network id="1" name="wlan1" icon="" canvas="0" model="basic_range" mobility="ns2script" type="WIRELESS_LAN">
|
||||
<position x="200.0" y="200.0" lat="47.57735226369077" lon="-122.1296216435031" alt="2.0"/>
|
||||
</network>
|
||||
</networks>
|
||||
<devices>
|
||||
<device id="2" name="n2" icon="" canvas="0" type="mdr" class="" image="">
|
||||
<position x="100.0" y="100.0" lat="47.57826125326112" lon="-122.13096911642927" alt="2.0"/>
|
||||
<configservices>
|
||||
<service name="zebra"/>
|
||||
<service name="OSPFv3MDR"/>
|
||||
<service name="IPForward"/>
|
||||
</configservices>
|
||||
</device>
|
||||
<device id="3" name="n3" icon="" canvas="0" type="mdr" class="" image="">
|
||||
<position x="300.0" y="100.0" lat="47.57826125326112" lon="-122.12827417057692" alt="2.0"/>
|
||||
<configservices>
|
||||
<service name="zebra"/>
|
||||
<service name="OSPFv3MDR"/>
|
||||
<service name="IPForward"/>
|
||||
</configservices>
|
||||
</device>
|
||||
<device id="4" name="n4" icon="" canvas="0" type="mdr" class="" image="">
|
||||
<position x="500.0" y="100.0" lat="47.57826125326112" lon="-122.12557922472458" alt="2.0"/>
|
||||
<configservices>
|
||||
<service name="zebra"/>
|
||||
<service name="OSPFv3MDR"/>
|
||||
<service name="IPForward"/>
|
||||
</configservices>
|
||||
</device>
|
||||
</devices>
|
||||
<links>
|
||||
<link node1="2" node2="1">
|
||||
<iface1 id="0" name="eth0" mac="00:16:3e:05:0a:60" ip4="10.0.0.2" ip4_mask="24" ip6="2001::2" ip6_mask="64"/>
|
||||
</link>
|
||||
<link node1="3" node2="1">
|
||||
<iface1 id="0" name="eth0" mac="00:16:3e:51:26:3c" ip4="10.0.0.3" ip4_mask="24" ip6="2001::3" ip6_mask="64"/>
|
||||
</link>
|
||||
<link node1="4" node2="1">
|
||||
<iface1 id="0" name="eth0" mac="00:16:3e:77:c9:d3" ip4="10.0.0.4" ip4_mask="24" ip6="2001::4" ip6_mask="64"/>
|
||||
</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"/>
|
||||
<service name="zebra" node="4"/>
|
||||
<service name="OSPFv3MDR" node="4"/>
|
||||
<service name="IPForward" node="4"/>
|
||||
</configservice_configurations>
|
||||
<session_origin lat="47.57917022705078" lon="-122.13231658935547" 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>
|
||||
<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>
|
32
package/examples/tutorials/tutorial3/move-node2.py
Normal file
32
package/examples/tutorials/tutorial3/move-node2.py
Normal file
|
@ -0,0 +1,32 @@
|
|||
import time
|
||||
|
||||
from core.api.grpc import client
|
||||
from core.api.grpc.wrappers import Position
|
||||
|
||||
|
||||
def main():
|
||||
# create grpc client and connect
|
||||
core = client.CoreGrpcClient("172.16.0.254:50051")
|
||||
core.connect()
|
||||
|
||||
# get session
|
||||
sessions = core.get_sessions()
|
||||
|
||||
print("sessions=", sessions)
|
||||
for i in range(300):
|
||||
position = Position(x= 100, y = 100 + i)
|
||||
core.move_node(sessions[0].id, 2, position=position)
|
||||
time.sleep(1)
|
||||
print("press enter to quit")
|
||||
input()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
33
package/examples/tutorials/tutorial3/movements1.txt
Normal file
33
package/examples/tutorials/tutorial3/movements1.txt
Normal file
|
@ -0,0 +1,33 @@
|
|||
$node_(1) set X_ 208.1
|
||||
$node_(1) set Y_ 211.05
|
||||
$node_(1) set Z_ 0
|
||||
$ns_ at 0.0 "$node_(1) setdest 208.1 211.05 0.00"
|
||||
$node_(2) set X_ 393.1
|
||||
$node_(2) set Y_ 223.05
|
||||
$node_(2) set Z_ 0
|
||||
$ns_ at 0.0 "$node_(2) setdest 393.1 223.05 0.00"
|
||||
$node_(4) set X_ 499.1
|
||||
$node_(4) set Y_ 186.05
|
||||
$node_(4) set Z_ 0
|
||||
$ns_ at 0.0 "$node_(4) setdest 499.1 186.05 0.00"
|
||||
$ns_ at 1.0 "$node_(1) setdest 190.1 225.05 0.00"
|
||||
$ns_ at 1.0 "$node_(2) setdest 393.1 225.05 0.00"
|
||||
$ns_ at 1.0 "$node_(4) setdest 515.1 186.05 0.00"
|
||||
$ns_ at 2.0 "$node_(1) setdest 175.1 250.05 0.00"
|
||||
$ns_ at 2.0 "$node_(2) setdest 393.1 250.05 0.00"
|
||||
$ns_ at 2.0 "$node_(4) setdest 530.1 186.05 0.00"
|
||||
$ns_ at 3.0 "$node_(1) setdest 160.1 275.05 0.00"
|
||||
$ns_ at 3.0 "$node_(2) setdest 393.1 275.05 0.00"
|
||||
$ns_ at 3.0 "$node_(4) setdest 530.1 186.05 0.00"
|
||||
$ns_ at 4.0 "$node_(1) setdest 160.1 300.05 0.00"
|
||||
$ns_ at 4.0 "$node_(2) setdest 393.1 300.05 0.00"
|
||||
$ns_ at 4.0 "$node_(4) setdest 550.1 186.05 0.00"
|
||||
$ns_ at 5.0 "$node_(1) setdest 160.1 275.05 0.00"
|
||||
$ns_ at 5.0 "$node_(2) setdest 393.1 275.05 0.00"
|
||||
$ns_ at 5.0 "$node_(4) setdest 530.1 186.05 0.00"
|
||||
$ns_ at 6.0 "$node_(1) setdest 175.1 250.05 0.00"
|
||||
$ns_ at 6.0 "$node_(2) setdest 393.1 250.05 0.00"
|
||||
$ns_ at 6.0 "$node_(4) setdest 515.1 186.05 0.00"
|
||||
$ns_ at 7.0 "$node_(1) setdest 190.1 225.05 0.00"
|
||||
$ns_ at 7.0 "$node_(2) setdest 393.1 225.05 0.00"
|
||||
$ns_ at 7.0 "$node_(4) setdest 499.1 186.05 0.00"
|
53
package/examples/tutorials/tutorial3/scenario.py
Normal file
53
package/examples/tutorials/tutorial3/scenario.py
Normal file
|
@ -0,0 +1,53 @@
|
|||
import time
|
||||
|
||||
from core.api.grpc import client
|
||||
from core.api.grpc.wrappers import NodeType, Position
|
||||
|
||||
|
||||
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()
|
||||
|
||||
# add session
|
||||
session = core.create_session()
|
||||
|
||||
# create nodes
|
||||
position = Position(x=200, y=200)
|
||||
wlan = session.add_node(3, name="wlan3", _type=NodeType.WIRELESS_LAN, position=position)
|
||||
position = Position(x=100, y=100)
|
||||
node1 = session.add_node(1, name="n1", model="mdr", position=position)
|
||||
position = Position(x=300, y=100)
|
||||
node2 = session.add_node(2, name="n2", model="mdr", position=position)
|
||||
position = Position(x=500, y=100)
|
||||
node3 = session.add_node(4, name="n4", model="mdr", position=position)
|
||||
|
||||
# create links
|
||||
iface1 = iface_helper.create_iface(node1.id, 0)
|
||||
session.add_link(node1=node1, node2=wlan, iface1=iface1)
|
||||
iface1 = iface_helper.create_iface(node2.id, 0)
|
||||
session.add_link(node1=node2, node2=wlan, iface1=iface1)
|
||||
iface1 = iface_helper.create_iface(node3.id, 0)
|
||||
session.add_link(node1=node3, node2=wlan, iface1=iface1)
|
||||
|
||||
# start session
|
||||
core.start_session(session)
|
||||
input("start motion, press enter")
|
||||
|
||||
# move node 4
|
||||
for i in range(300):
|
||||
position = Position(x=500 + i, y=100)
|
||||
core.move_node(session.id, 4, position=position)
|
||||
time.sleep(1)
|
||||
x = 800
|
||||
for i in range(300):
|
||||
position = Position(x=800 - i, y=100)
|
||||
core.move_node(session.id, 4, position=position)
|
||||
time.sleep(1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
124
package/examples/tutorials/tutorial3/scenario.xml
Normal file
124
package/examples/tutorials/tutorial3/scenario.xml
Normal file
|
@ -0,0 +1,124 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<scenario name="/tmp/tmpnpymmhg9">
|
||||
<networks>
|
||||
<network id="3" name="wlan3" icon="" canvas="1" model="basic_range" mobility="ns2script" type="WIRELESS_LAN">
|
||||
<position x="294.0" y="149.0" lat="47.57781203554751" lon="-122.12836264834701" alt="2.0"/>
|
||||
</network>
|
||||
</networks>
|
||||
<devices>
|
||||
<device id="1" name="n1" icon="" canvas="1" type="mdr" class="" image="">
|
||||
<position x="208.0" y="211.0" lat="47.57724845903762" lon="-122.12952147506353" alt="2.0"/>
|
||||
<configservices>
|
||||
<service name="IPForward"/>
|
||||
<service name="OSPFv3MDR"/>
|
||||
<service name="zebra"/>
|
||||
</configservices>
|
||||
</device>
|
||||
<device id="2" name="n2" icon="" canvas="1" type="mdr" class="" image="">
|
||||
<position x="393.0" y="223.0" lat="47.57713937901246" lon="-122.1270286501501" alt="2.0"/>
|
||||
<configservices>
|
||||
<service name="IPForward"/>
|
||||
<service name="OSPFv3MDR"/>
|
||||
<service name="zebra"/>
|
||||
</configservices>
|
||||
</device>
|
||||
<device id="4" name="n4" icon="" canvas="1" type="mdr" class="" image="">
|
||||
<position x="499.0" y="186.0" lat="47.577475708360176" lon="-122.12560032884835" alt="2.0"/>
|
||||
<configservices>
|
||||
<service name="IPForward"/>
|
||||
<service name="OSPFv3MDR"/>
|
||||
<service name="zebra"/>
|
||||
</configservices>
|
||||
</device>
|
||||
</devices>
|
||||
<links>
|
||||
<link node1="4" node2="3">
|
||||
<iface1 id="0" name="eth0" mac="00:00:00:aa:00:02" ip4="10.0.0.3" ip4_mask="32" ip6="2001::3" ip6_mask="128"/>
|
||||
</link>
|
||||
<link node1="2" node2="3">
|
||||
<iface1 id="0" name="eth0" mac="00:00:00:aa:00:01" ip4="10.0.0.2" ip4_mask="32" ip6="2001::2" ip6_mask="128"/>
|
||||
</link>
|
||||
<link node1="1" node2="3">
|
||||
<iface1 id="0" name="eth0" mac="00:00:00:aa:00:00" ip4="10.0.0.1" ip4_mask="32" ip6="2001::1" ip6_mask="128"/>
|
||||
</link>
|
||||
</links>
|
||||
<mobility_configurations>
|
||||
<mobility_configuration node="3" model="basic_range">
|
||||
<configuration name="range" value="275"/>
|
||||
<configuration name="bandwidth" value="54000000"/>
|
||||
<configuration name="jitter" value="0"/>
|
||||
<configuration name="delay" value="5000"/>
|
||||
<configuration name="error" value="0.0"/>
|
||||
<configuration name="promiscuous" value="0"/>
|
||||
</mobility_configuration>
|
||||
<mobility_configuration node="3" model="ns2script">
|
||||
<configuration name="file" value="/usr/share/core/examples/tutorials/tutorial3/movements1.txt"/>
|
||||
<configuration name="refresh_ms" value="50"/>
|
||||
<configuration name="loop" value="1"/>
|
||||
<configuration name="autostart" value=""/>
|
||||
<configuration name="map" value=""/>
|
||||
<configuration name="script_start" value=""/>
|
||||
<configuration name="script_pause" value=""/>
|
||||
<configuration name="script_stop" value=""/>
|
||||
</mobility_configuration>
|
||||
</mobility_configurations>
|
||||
<configservice_configurations>
|
||||
<service name="IPForward" node="1"/>
|
||||
<service name="OSPFv3MDR" node="1"/>
|
||||
<service name="zebra" node="1"/>
|
||||
<service name="IPForward" node="2"/>
|
||||
<service name="OSPFv3MDR" node="2"/>
|
||||
<service name="zebra" node="2"/>
|
||||
<service name="IPForward" node="4"/>
|
||||
<service name="OSPFv3MDR" node="4"/>
|
||||
<service name="zebra" node="4"/>
|
||||
</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