added emane examples for various emane topics when used within core
This commit is contained in:
parent
3d3e2271be
commit
5a07929fde
9 changed files with 1050 additions and 0 deletions
146
daemon/core/gui/data/xmls/emane-demo-eel.xml
Normal file
146
daemon/core/gui/data/xmls/emane-demo-eel.xml
Normal file
|
@ -0,0 +1,146 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<scenario name="/home/developer/.core/configs/emane-demo-eel.xml">
|
||||
<networks>
|
||||
<network id="3" name="wlan3" model="emane_rfpipe" type="EMANE">
|
||||
<position x="282" y="317" lat="47.57628519861569" lon="-122.12852212634816" alt="2.0"/>
|
||||
</network>
|
||||
</networks>
|
||||
<devices>
|
||||
<device id="1" name="n1" type="mdr" class="" image="">
|
||||
<position x="153" y="172" lat="47.57760325520506" lon="-122.13026036642295" alt="2.0"/>
|
||||
<services>
|
||||
<service name="zebra"/>
|
||||
<service name="OSPFv3MDR"/>
|
||||
<service name="IPForward"/>
|
||||
</services>
|
||||
</device>
|
||||
<device id="2" name="n2" type="mdr" class="" image="">
|
||||
<position x="393" y="171" lat="47.57761234513531" lon="-122.12702643140011" alt="2.0"/>
|
||||
<services>
|
||||
<service name="zebra"/>
|
||||
<service name="OSPFv3MDR"/>
|
||||
<service name="IPForward"/>
|
||||
</services>
|
||||
</device>
|
||||
</devices>
|
||||
<links>
|
||||
<link node1="3" node2="1">
|
||||
<iface2 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="2">
|
||||
<iface2 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>
|
||||
<emane_global_configuration>
|
||||
<emulator>
|
||||
<configuration name="antennaprofilemanifesturi" value=""/>
|
||||
<configuration name="controlportendpoint" value="0.0.0.0:47000"/>
|
||||
<configuration name="eventservicedevice" value="ctrl0"/>
|
||||
<configuration name="eventservicegroup" value="224.1.2.8:45703"/>
|
||||
<configuration name="eventservicettl" value="1"/>
|
||||
<configuration name="otamanagerchannelenable" value="1"/>
|
||||
<configuration name="otamanagerdevice" value="ctrl0"/>
|
||||
<configuration name="otamanagergroup" value="224.1.2.8:45702"/>
|
||||
<configuration name="otamanagerloopback" value="0"/>
|
||||
<configuration name="otamanagermtu" value="0"/>
|
||||
<configuration name="otamanagerpartcheckthreshold" value="2"/>
|
||||
<configuration name="otamanagerparttimeoutthreshold" value="5"/>
|
||||
<configuration name="otamanagerttl" value="1"/>
|
||||
<configuration name="stats.event.maxeventcountrows" value="0"/>
|
||||
<configuration name="stats.ota.maxeventcountrows" value="0"/>
|
||||
<configuration name="stats.ota.maxpacketcountrows" value="0"/>
|
||||
</emulator>
|
||||
<core>
|
||||
<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"/>
|
||||
</core>
|
||||
</emane_global_configuration>
|
||||
<emane_configurations>
|
||||
<emane_configuration node="3" model="emane_rfpipe">
|
||||
<mac>
|
||||
<configuration name="datarate" value="1000000"/>
|
||||
<configuration name="delay" value="0.000000"/>
|
||||
<configuration name="enablepromiscuousmode" value="0"/>
|
||||
<configuration name="flowcontrolenable" value="0"/>
|
||||
<configuration name="flowcontroltokens" value="10"/>
|
||||
<configuration name="jitter" value="0.000000"/>
|
||||
<configuration name="neighbormetricdeletetime" value="60.000000"/>
|
||||
<configuration name="pcrcurveuri" value="/usr/share/emane/xml/models/mac/rfpipe/rfpipepcr.xml"/>
|
||||
<configuration name="radiometricenable" value="0"/>
|
||||
<configuration name="radiometricreportinterval" value="1.000000"/>
|
||||
</mac>
|
||||
<phy>
|
||||
<configuration name="bandwidth" value="1000000"/>
|
||||
<configuration name="fading.model" value="none"/>
|
||||
<configuration name="fading.nakagami.distance0" value="100.000000"/>
|
||||
<configuration name="fading.nakagami.distance1" value="250.000000"/>
|
||||
<configuration name="fading.nakagami.m0" value="0.750000"/>
|
||||
<configuration name="fading.nakagami.m1" value="1.000000"/>
|
||||
<configuration name="fading.nakagami.m2" value="200.000000"/>
|
||||
<configuration name="fixedantennagain" value="0.000000"/>
|
||||
<configuration name="fixedantennagainenable" value="1"/>
|
||||
<configuration name="frequency" value="2347000000"/>
|
||||
<configuration name="frequencyofinterest" value="2347000000"/>
|
||||
<configuration name="noisebinsize" value="20"/>
|
||||
<configuration name="noisemaxclampenable" value="0"/>
|
||||
<configuration name="noisemaxmessagepropagation" value="200000"/>
|
||||
<configuration name="noisemaxsegmentduration" value="1000000"/>
|
||||
<configuration name="noisemaxsegmentoffset" value="300000"/>
|
||||
<configuration name="noisemode" value="none"/>
|
||||
<configuration name="propagationmodel" value="precomputed"/>
|
||||
<configuration name="subid" value="1"/>
|
||||
<configuration name="systemnoisefigure" value="4.000000"/>
|
||||
<configuration name="timesyncthreshold" value="10000"/>
|
||||
<configuration name="txpower" value="0.000000"/>
|
||||
</phy>
|
||||
<external>
|
||||
<configuration name="external" value="0"/>
|
||||
<configuration name="platformendpoint" value="127.0.0.1:40001"/>
|
||||
<configuration name="transportendpoint" value="127.0.0.1:50002"/>
|
||||
</external>
|
||||
</emane_configuration>
|
||||
</emane_configurations>
|
||||
<session_origin lat="47.5791667" lon="-122.132322" alt="2.0" scale="150.0"/>
|
||||
<session_options>
|
||||
<configuration name="controlnet" value="172.16.0.0/24"/>
|
||||
<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"/>
|
||||
</session_options>
|
||||
<session_metadata>
|
||||
<configuration name="canvas c1" value="{name {Canvas1}}"/>
|
||||
<configuration name="global_options" value="interface_names=no ip_addresses=yes ipv6_addresses=yes node_labels=yes link_labels=yes show_api=no background_images=no annotations=yes grid=yes traffic_start=0"/>
|
||||
</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>
|
146
daemon/core/gui/data/xmls/emane-demo-files.xml
Normal file
146
daemon/core/gui/data/xmls/emane-demo-files.xml
Normal file
|
@ -0,0 +1,146 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<scenario name="/home/developer/.core/configs/emane-demo-files.xml">
|
||||
<networks>
|
||||
<network id="3" name="wlan3" model="emane_rfpipe" type="EMANE">
|
||||
<position x="282" y="317" lat="47.57628519861569" lon="-122.12852212634816" alt="2.0"/>
|
||||
</network>
|
||||
</networks>
|
||||
<devices>
|
||||
<device id="1" name="n1" type="mdr" class="" image="">
|
||||
<position x="153" y="173" lat="47.57759416527324" lon="-122.13026036642295" alt="2.0"/>
|
||||
<services>
|
||||
<service name="zebra"/>
|
||||
<service name="OSPFv3MDR"/>
|
||||
<service name="IPForward"/>
|
||||
</services>
|
||||
</device>
|
||||
<device id="2" name="n2" type="mdr" class="" image="">
|
||||
<position x="393" y="171" lat="47.57761234513531" lon="-122.12702643140011" alt="2.0"/>
|
||||
<services>
|
||||
<service name="zebra"/>
|
||||
<service name="OSPFv3MDR"/>
|
||||
<service name="IPForward"/>
|
||||
</services>
|
||||
</device>
|
||||
</devices>
|
||||
<links>
|
||||
<link node1="3" node2="1">
|
||||
<iface2 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="2">
|
||||
<iface2 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>
|
||||
<emane_global_configuration>
|
||||
<emulator>
|
||||
<configuration name="antennaprofilemanifesturi" value=""/>
|
||||
<configuration name="controlportendpoint" value="0.0.0.0:47000"/>
|
||||
<configuration name="eventservicedevice" value="ctrl0"/>
|
||||
<configuration name="eventservicegroup" value="224.1.2.8:45703"/>
|
||||
<configuration name="eventservicettl" value="1"/>
|
||||
<configuration name="otamanagerchannelenable" value="1"/>
|
||||
<configuration name="otamanagerdevice" value="ctrl0"/>
|
||||
<configuration name="otamanagergroup" value="224.1.2.8:45702"/>
|
||||
<configuration name="otamanagerloopback" value="0"/>
|
||||
<configuration name="otamanagermtu" value="0"/>
|
||||
<configuration name="otamanagerpartcheckthreshold" value="2"/>
|
||||
<configuration name="otamanagerparttimeoutthreshold" value="5"/>
|
||||
<configuration name="otamanagerttl" value="1"/>
|
||||
<configuration name="stats.event.maxeventcountrows" value="0"/>
|
||||
<configuration name="stats.ota.maxeventcountrows" value="0"/>
|
||||
<configuration name="stats.ota.maxpacketcountrows" value="0"/>
|
||||
</emulator>
|
||||
<core>
|
||||
<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"/>
|
||||
</core>
|
||||
</emane_global_configuration>
|
||||
<emane_configurations>
|
||||
<emane_configuration node="3" model="emane_rfpipe">
|
||||
<mac>
|
||||
<configuration name="datarate" value="1000000"/>
|
||||
<configuration name="delay" value="0.000000"/>
|
||||
<configuration name="enablepromiscuousmode" value="0"/>
|
||||
<configuration name="flowcontrolenable" value="0"/>
|
||||
<configuration name="flowcontroltokens" value="10"/>
|
||||
<configuration name="jitter" value="0.000000"/>
|
||||
<configuration name="neighbormetricdeletetime" value="60.000000"/>
|
||||
<configuration name="pcrcurveuri" value="/usr/share/emane/xml/models/mac/rfpipe/rfpipepcr.xml"/>
|
||||
<configuration name="radiometricenable" value="0"/>
|
||||
<configuration name="radiometricreportinterval" value="1.000000"/>
|
||||
</mac>
|
||||
<phy>
|
||||
<configuration name="bandwidth" value="1000000"/>
|
||||
<configuration name="fading.model" value="none"/>
|
||||
<configuration name="fading.nakagami.distance0" value="100.000000"/>
|
||||
<configuration name="fading.nakagami.distance1" value="250.000000"/>
|
||||
<configuration name="fading.nakagami.m0" value="0.750000"/>
|
||||
<configuration name="fading.nakagami.m1" value="1.000000"/>
|
||||
<configuration name="fading.nakagami.m2" value="200.000000"/>
|
||||
<configuration name="fixedantennagain" value="0.000000"/>
|
||||
<configuration name="fixedantennagainenable" value="1"/>
|
||||
<configuration name="frequency" value="2347000000"/>
|
||||
<configuration name="frequencyofinterest" value="2347000000"/>
|
||||
<configuration name="noisebinsize" value="20"/>
|
||||
<configuration name="noisemaxclampenable" value="0"/>
|
||||
<configuration name="noisemaxmessagepropagation" value="200000"/>
|
||||
<configuration name="noisemaxsegmentduration" value="1000000"/>
|
||||
<configuration name="noisemaxsegmentoffset" value="300000"/>
|
||||
<configuration name="noisemode" value="none"/>
|
||||
<configuration name="propagationmodel" value="2ray"/>
|
||||
<configuration name="subid" value="1"/>
|
||||
<configuration name="systemnoisefigure" value="4.000000"/>
|
||||
<configuration name="timesyncthreshold" value="10000"/>
|
||||
<configuration name="txpower" value="0.000000"/>
|
||||
</phy>
|
||||
<external>
|
||||
<configuration name="external" value="0"/>
|
||||
<configuration name="platformendpoint" value="127.0.0.1:40001"/>
|
||||
<configuration name="transportendpoint" value="127.0.0.1:50002"/>
|
||||
</external>
|
||||
</emane_configuration>
|
||||
</emane_configurations>
|
||||
<session_origin lat="47.5791667" lon="-122.132322" alt="2.0" scale="150.0"/>
|
||||
<session_options>
|
||||
<configuration name="controlnet" value="172.16.0.0/24"/>
|
||||
<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"/>
|
||||
</session_options>
|
||||
<session_metadata>
|
||||
<configuration name="canvas c1" value="{name {Canvas1}}"/>
|
||||
<configuration name="global_options" value="interface_names=no ip_addresses=yes ipv6_addresses=yes node_labels=yes link_labels=yes show_api=no background_images=no annotations=yes grid=yes traffic_start=0"/>
|
||||
</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>
|
146
daemon/core/gui/data/xmls/emane-demo-gpsd.xml
Normal file
146
daemon/core/gui/data/xmls/emane-demo-gpsd.xml
Normal file
|
@ -0,0 +1,146 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<scenario name="/home/developer/.core/configs/emane-demo-gpsd.xml">
|
||||
<networks>
|
||||
<network id="3" name="wlan3" model="emane_rfpipe" type="EMANE">
|
||||
<position x="282" y="317" lat="47.57628519861569" lon="-122.12852212634816" alt="2.0"/>
|
||||
</network>
|
||||
</networks>
|
||||
<devices>
|
||||
<device id="1" name="n1" type="mdr" class="" image="">
|
||||
<position x="153" y="173" lat="47.57759416527324" lon="-122.13026036642295" alt="2.0"/>
|
||||
<services>
|
||||
<service name="zebra"/>
|
||||
<service name="OSPFv3MDR"/>
|
||||
<service name="IPForward"/>
|
||||
</services>
|
||||
</device>
|
||||
<device id="2" name="n2" type="mdr" class="" image="">
|
||||
<position x="393" y="171" lat="47.57761234513531" lon="-122.12702643140011" alt="2.0"/>
|
||||
<services>
|
||||
<service name="zebra"/>
|
||||
<service name="OSPFv3MDR"/>
|
||||
<service name="IPForward"/>
|
||||
</services>
|
||||
</device>
|
||||
</devices>
|
||||
<links>
|
||||
<link node1="3" node2="1">
|
||||
<iface2 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="2">
|
||||
<iface2 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>
|
||||
<emane_global_configuration>
|
||||
<emulator>
|
||||
<configuration name="antennaprofilemanifesturi" value=""/>
|
||||
<configuration name="controlportendpoint" value="0.0.0.0:47000"/>
|
||||
<configuration name="eventservicedevice" value="ctrl0"/>
|
||||
<configuration name="eventservicegroup" value="224.1.2.8:45703"/>
|
||||
<configuration name="eventservicettl" value="1"/>
|
||||
<configuration name="otamanagerchannelenable" value="1"/>
|
||||
<configuration name="otamanagerdevice" value="ctrl0"/>
|
||||
<configuration name="otamanagergroup" value="224.1.2.8:45702"/>
|
||||
<configuration name="otamanagerloopback" value="0"/>
|
||||
<configuration name="otamanagermtu" value="0"/>
|
||||
<configuration name="otamanagerpartcheckthreshold" value="2"/>
|
||||
<configuration name="otamanagerparttimeoutthreshold" value="5"/>
|
||||
<configuration name="otamanagerttl" value="1"/>
|
||||
<configuration name="stats.event.maxeventcountrows" value="0"/>
|
||||
<configuration name="stats.ota.maxeventcountrows" value="0"/>
|
||||
<configuration name="stats.ota.maxpacketcountrows" value="0"/>
|
||||
</emulator>
|
||||
<core>
|
||||
<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"/>
|
||||
</core>
|
||||
</emane_global_configuration>
|
||||
<emane_configurations>
|
||||
<emane_configuration node="3" model="emane_rfpipe">
|
||||
<mac>
|
||||
<configuration name="datarate" value="1000000"/>
|
||||
<configuration name="delay" value="0.000000"/>
|
||||
<configuration name="enablepromiscuousmode" value="0"/>
|
||||
<configuration name="flowcontrolenable" value="0"/>
|
||||
<configuration name="flowcontroltokens" value="10"/>
|
||||
<configuration name="jitter" value="0.000000"/>
|
||||
<configuration name="neighbormetricdeletetime" value="60.000000"/>
|
||||
<configuration name="pcrcurveuri" value="/usr/share/emane/xml/models/mac/rfpipe/rfpipepcr.xml"/>
|
||||
<configuration name="radiometricenable" value="0"/>
|
||||
<configuration name="radiometricreportinterval" value="1.000000"/>
|
||||
</mac>
|
||||
<phy>
|
||||
<configuration name="bandwidth" value="1000000"/>
|
||||
<configuration name="fading.model" value="none"/>
|
||||
<configuration name="fading.nakagami.distance0" value="100.000000"/>
|
||||
<configuration name="fading.nakagami.distance1" value="250.000000"/>
|
||||
<configuration name="fading.nakagami.m0" value="0.750000"/>
|
||||
<configuration name="fading.nakagami.m1" value="1.000000"/>
|
||||
<configuration name="fading.nakagami.m2" value="200.000000"/>
|
||||
<configuration name="fixedantennagain" value="0.000000"/>
|
||||
<configuration name="fixedantennagainenable" value="1"/>
|
||||
<configuration name="frequency" value="2347000000"/>
|
||||
<configuration name="frequencyofinterest" value="2347000000"/>
|
||||
<configuration name="noisebinsize" value="20"/>
|
||||
<configuration name="noisemaxclampenable" value="0"/>
|
||||
<configuration name="noisemaxmessagepropagation" value="200000"/>
|
||||
<configuration name="noisemaxsegmentduration" value="1000000"/>
|
||||
<configuration name="noisemaxsegmentoffset" value="300000"/>
|
||||
<configuration name="noisemode" value="none"/>
|
||||
<configuration name="propagationmodel" value="2ray"/>
|
||||
<configuration name="subid" value="1"/>
|
||||
<configuration name="systemnoisefigure" value="4.000000"/>
|
||||
<configuration name="timesyncthreshold" value="10000"/>
|
||||
<configuration name="txpower" value="0.000000"/>
|
||||
</phy>
|
||||
<external>
|
||||
<configuration name="external" value="0"/>
|
||||
<configuration name="platformendpoint" value="127.0.0.1:40001"/>
|
||||
<configuration name="transportendpoint" value="127.0.0.1:50002"/>
|
||||
</external>
|
||||
</emane_configuration>
|
||||
</emane_configurations>
|
||||
<session_origin lat="47.5791667" lon="-122.132322" alt="2.0" scale="150.0"/>
|
||||
<session_options>
|
||||
<configuration name="controlnet" value="172.16.0.0/24"/>
|
||||
<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"/>
|
||||
</session_options>
|
||||
<session_metadata>
|
||||
<configuration name="canvas c1" value="{name {Canvas1}}"/>
|
||||
<configuration name="global_options" value="interface_names=no ip_addresses=yes ipv6_addresses=yes node_labels=yes link_labels=yes show_api=no background_images=no annotations=yes grid=yes traffic_start=0"/>
|
||||
</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>
|
146
daemon/core/gui/data/xmls/emane-demo-precomputed.xml
Normal file
146
daemon/core/gui/data/xmls/emane-demo-precomputed.xml
Normal file
|
@ -0,0 +1,146 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<scenario name="/home/developer/.core/configs/emane-demo-precomputed.xml">
|
||||
<networks>
|
||||
<network id="3" name="wlan3" model="emane_rfpipe" type="EMANE">
|
||||
<position x="282" y="317" lat="47.57628519861569" lon="-122.12852212634816" alt="2.0"/>
|
||||
</network>
|
||||
</networks>
|
||||
<devices>
|
||||
<device id="1" name="n1" type="mdr" class="" image="">
|
||||
<position x="153" y="172" lat="47.57760325520506" lon="-122.13026036642295" alt="2.0"/>
|
||||
<services>
|
||||
<service name="zebra"/>
|
||||
<service name="OSPFv3MDR"/>
|
||||
<service name="IPForward"/>
|
||||
</services>
|
||||
</device>
|
||||
<device id="2" name="n2" type="mdr" class="" image="">
|
||||
<position x="393" y="171" lat="47.57761234513531" lon="-122.12702643140011" alt="2.0"/>
|
||||
<services>
|
||||
<service name="zebra"/>
|
||||
<service name="OSPFv3MDR"/>
|
||||
<service name="IPForward"/>
|
||||
</services>
|
||||
</device>
|
||||
</devices>
|
||||
<links>
|
||||
<link node1="3" node2="1">
|
||||
<iface2 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="2">
|
||||
<iface2 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>
|
||||
<emane_global_configuration>
|
||||
<emulator>
|
||||
<configuration name="antennaprofilemanifesturi" value=""/>
|
||||
<configuration name="controlportendpoint" value="0.0.0.0:47000"/>
|
||||
<configuration name="eventservicedevice" value="ctrl0"/>
|
||||
<configuration name="eventservicegroup" value="224.1.2.8:45703"/>
|
||||
<configuration name="eventservicettl" value="1"/>
|
||||
<configuration name="otamanagerchannelenable" value="1"/>
|
||||
<configuration name="otamanagerdevice" value="ctrl0"/>
|
||||
<configuration name="otamanagergroup" value="224.1.2.8:45702"/>
|
||||
<configuration name="otamanagerloopback" value="0"/>
|
||||
<configuration name="otamanagermtu" value="0"/>
|
||||
<configuration name="otamanagerpartcheckthreshold" value="2"/>
|
||||
<configuration name="otamanagerparttimeoutthreshold" value="5"/>
|
||||
<configuration name="otamanagerttl" value="1"/>
|
||||
<configuration name="stats.event.maxeventcountrows" value="0"/>
|
||||
<configuration name="stats.ota.maxeventcountrows" value="0"/>
|
||||
<configuration name="stats.ota.maxpacketcountrows" value="0"/>
|
||||
</emulator>
|
||||
<core>
|
||||
<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"/>
|
||||
</core>
|
||||
</emane_global_configuration>
|
||||
<emane_configurations>
|
||||
<emane_configuration node="3" model="emane_rfpipe">
|
||||
<mac>
|
||||
<configuration name="datarate" value="1000000"/>
|
||||
<configuration name="delay" value="0.000000"/>
|
||||
<configuration name="enablepromiscuousmode" value="0"/>
|
||||
<configuration name="flowcontrolenable" value="0"/>
|
||||
<configuration name="flowcontroltokens" value="10"/>
|
||||
<configuration name="jitter" value="0.000000"/>
|
||||
<configuration name="neighbormetricdeletetime" value="60.000000"/>
|
||||
<configuration name="pcrcurveuri" value="/usr/share/emane/xml/models/mac/rfpipe/rfpipepcr.xml"/>
|
||||
<configuration name="radiometricenable" value="0"/>
|
||||
<configuration name="radiometricreportinterval" value="1.000000"/>
|
||||
</mac>
|
||||
<phy>
|
||||
<configuration name="bandwidth" value="1000000"/>
|
||||
<configuration name="fading.model" value="none"/>
|
||||
<configuration name="fading.nakagami.distance0" value="100.000000"/>
|
||||
<configuration name="fading.nakagami.distance1" value="250.000000"/>
|
||||
<configuration name="fading.nakagami.m0" value="0.750000"/>
|
||||
<configuration name="fading.nakagami.m1" value="1.000000"/>
|
||||
<configuration name="fading.nakagami.m2" value="200.000000"/>
|
||||
<configuration name="fixedantennagain" value="0.000000"/>
|
||||
<configuration name="fixedantennagainenable" value="1"/>
|
||||
<configuration name="frequency" value="2347000000"/>
|
||||
<configuration name="frequencyofinterest" value="2347000000"/>
|
||||
<configuration name="noisebinsize" value="20"/>
|
||||
<configuration name="noisemaxclampenable" value="0"/>
|
||||
<configuration name="noisemaxmessagepropagation" value="200000"/>
|
||||
<configuration name="noisemaxsegmentduration" value="1000000"/>
|
||||
<configuration name="noisemaxsegmentoffset" value="300000"/>
|
||||
<configuration name="noisemode" value="none"/>
|
||||
<configuration name="propagationmodel" value="precomputed"/>
|
||||
<configuration name="subid" value="1"/>
|
||||
<configuration name="systemnoisefigure" value="4.000000"/>
|
||||
<configuration name="timesyncthreshold" value="10000"/>
|
||||
<configuration name="txpower" value="0.000000"/>
|
||||
</phy>
|
||||
<external>
|
||||
<configuration name="external" value="0"/>
|
||||
<configuration name="platformendpoint" value="127.0.0.1:40001"/>
|
||||
<configuration name="transportendpoint" value="127.0.0.1:50002"/>
|
||||
</external>
|
||||
</emane_configuration>
|
||||
</emane_configurations>
|
||||
<session_origin lat="47.5791667" lon="-122.132322" alt="2.0" scale="150.0"/>
|
||||
<session_options>
|
||||
<configuration name="controlnet" value="172.16.0.0/24"/>
|
||||
<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"/>
|
||||
</session_options>
|
||||
<session_metadata>
|
||||
<configuration name="canvas c1" value="{name {Canvas1}}"/>
|
||||
<configuration name="global_options" value="interface_names=no ip_addresses=yes ipv6_addresses=yes node_labels=yes link_labels=yes show_api=no background_images=no annotations=yes grid=yes traffic_start=0"/>
|
||||
</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>
|
|
@ -50,6 +50,25 @@ can also subscribe to EMANE location events and move the nodes on the canvas
|
|||
as they are moved in the EMANE emulation. This would occur when an Emulation
|
||||
Script Generator, for example, is running a mobility script.
|
||||
|
||||
## EMANE in CORE
|
||||
|
||||
This section will cover some high level topics and examples for running and
|
||||
using EMANE in CORE.
|
||||
|
||||
You can find more detailed tutorials and examples at the
|
||||
[EMANE Tutorial](https://github.com/adjacentlink/emane-tutorial/wiki).
|
||||
|
||||
Every topic below assumes CORE, EMANE, and OSPF MDR have been installed.
|
||||
|
||||
> **WARNING:** demo files will be found within the new `core-pygui`
|
||||
|
||||
|Topic|Model|Description|
|
||||
|---|---|---|
|
||||
|[XML Files](emane/files.md)|RF Pipe|Overview of generated XML files used to drive EMANE|
|
||||
|[GPSD](emane/gpsd.md)|RF Pipe|Overview of running and integrating gpsd with EMANE|
|
||||
|[Precomputed](emane/precomputed.md)|RF Pipe|Overview of using the precomputed propagation model|
|
||||
|[EEL](emane/eel.md)|RF Pipe|Overview of using the Emulation Event Log (EEL) Generator|
|
||||
|
||||
## EMANE Configuration
|
||||
|
||||
The CORE configuration file **/etc/core/core.conf** has options specific to
|
||||
|
|
103
docs/emane/eel.md
Normal file
103
docs/emane/eel.md
Normal file
|
@ -0,0 +1,103 @@
|
|||
# EMANE Emulation Event Log (EEL) Generator
|
||||
* Table of Contents
|
||||
{:toc}
|
||||
|
||||
## Overview
|
||||
Introduction to using the EMANE event service and eel files to provide events.
|
||||
|
||||
[EMANE Demo 1](https://github.com/adjacentlink/emane-tutorial/wiki/Demonstration-1)
|
||||
for more specifics.
|
||||
|
||||
### Run Demo
|
||||
1. Select `Open...` within the GUI
|
||||
1. Load `emane-demo-eel.xml`
|
||||
1. Click ![Start Button](../static/gui/start.gif)
|
||||
1. After startup completes, double click n1 to bring up the nodes terminal
|
||||
|
||||
## Example Demo
|
||||
This demo will go over defining an EMANE event service and eel file to drive
|
||||
an emane event service.
|
||||
|
||||
### Viewing Events
|
||||
On n1 we will use the EMANE event dump utility to listen to events.
|
||||
```shell
|
||||
root@n1:/tmp/pycore.46777/n1.conf# emaneevent-dump -i ctrl0
|
||||
```
|
||||
|
||||
### Sending Events
|
||||
On the host machine we will create the following files and start the
|
||||
EMANE event service targeting the control network.
|
||||
|
||||
> **WARNING:** make sure to set the `eventservicedevice` to the proper control
|
||||
> network value
|
||||
|
||||
Create `eventservice.xml` with the following contents.
|
||||
```shell
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE eventservice SYSTEM "file:///usr/share/emane/dtd/eventservice.dtd">
|
||||
<eventservice>
|
||||
<param name="eventservicegroup" value="224.1.2.8:45703"/>
|
||||
<param name="eventservicedevice" value="b.9001.f"/>
|
||||
<generator definition="eelgenerator.xml"/>
|
||||
</eventservice>
|
||||
```
|
||||
|
||||
Next we will create the `eelgenerator.xml` file. The EEL Generator is actually
|
||||
a plugin that loads sentence parsing plugins. The sentence parsing plugins know
|
||||
how to convert certain sentences, in this case commeffect, location, velocity,
|
||||
orientation, pathloss and antennaprofile sentences, into their corresponding
|
||||
emane event equivalents.
|
||||
|
||||
* commeffect:eelloadercommeffect:delta
|
||||
* location,velocity,orientation:eelloaderlocation:delta
|
||||
* pathloss:eelloaderpathloss:delta
|
||||
* antennaprofile:eelloaderantennaprofile:delta
|
||||
|
||||
These configuration items tell the EEL Generator which sentences to map to
|
||||
which plugin and whether to issue delta or full updates.
|
||||
|
||||
Create `eelgenerator.xml` with the following contents.
|
||||
```shell
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE eventgenerator SYSTEM "file:///usr/share/emane/dtd/eventgenerator.dtd">
|
||||
<eventgenerator library="eelgenerator">
|
||||
<param name="inputfile" value="scenario.eel" />
|
||||
<paramlist name="loader">
|
||||
<item value="commeffect:eelloadercommeffect:delta"/>
|
||||
<item value="location,velocity,orientation:eelloaderlocation:delta"/>
|
||||
<item value="pathloss:eelloaderpathloss:delta"/>
|
||||
<item value="antennaprofile:eelloaderantennaprofile:delta"/>
|
||||
</paramlist>
|
||||
</eventgenerator>
|
||||
```
|
||||
|
||||
Finally, create `scenario.eel` with the following contents.
|
||||
```shell
|
||||
0.0 nem:1 pathloss nem:2,90.0
|
||||
0.0 nem:2 pathloss nem:1,90.0
|
||||
0.0 nem:1 location gps 40.031075,-74.523518,3.000000
|
||||
0.0 nem:2 location gps 40.031165,-74.523412,3.000000
|
||||
```
|
||||
|
||||
Start the EMANE event service using the files created above.
|
||||
```shell
|
||||
emaneeventservice eventservice.xml -l 3
|
||||
```
|
||||
|
||||
### Sent Events
|
||||
If we go back to look at our original terminal we will see the events logged
|
||||
out to the terminal.
|
||||
|
||||
```shell
|
||||
root@n1:/tmp/pycore.46777/n1.conf# emaneevent-dump -i ctrl0
|
||||
[1601858142.917224] nem: 0 event: 100 len: 66 seq: 1 [Location]
|
||||
UUID: 0af267be-17d3-4103-9f76-6f697e13bcec
|
||||
(1, {'latitude': 40.031075, 'altitude': 3.0, 'longitude': -74.823518})
|
||||
(2, {'latitude': 40.031165, 'altitude': 3.0, 'longitude': -74.523412})
|
||||
[1601858142.917466] nem: 1 event: 101 len: 14 seq: 2 [Pathloss]
|
||||
UUID: 0af267be-17d3-4103-9f76-6f697e13bcec
|
||||
(2, {'forward': 90.0, 'reverse': 90.0})
|
||||
[1601858142.917889] nem: 2 event: 101 len: 14 seq: 3 [Pathloss]
|
||||
UUID: 0af267be-17d3-4103-9f76-6f697e13bcec
|
||||
(1, {'forward': 90.0, 'reverse': 90.0})
|
||||
```
|
160
docs/emane/files.md
Normal file
160
docs/emane/files.md
Normal file
|
@ -0,0 +1,160 @@
|
|||
# EMANE XML Files
|
||||
* Table of Contents
|
||||
{:toc}
|
||||
|
||||
## Overview
|
||||
Introduction to the XML files generated by CORE used to drive EMANE for
|
||||
a given node.
|
||||
|
||||
[EMANE Demo 0](https://github.com/adjacentlink/emane-tutorial/wiki/Demonstration-0)
|
||||
may provide more helpful details.
|
||||
|
||||
## Run Demo
|
||||
1. Select `Open...` within the GUI
|
||||
1. Load `emane-demo-files.xml`
|
||||
1. Click ![Start Button](../static/gui/start.gif)
|
||||
1. After startup completes, double click n1 to bring up the nodes terminal
|
||||
|
||||
## Example Demo
|
||||
We will take a look at the files generated in the example demo provided. In this
|
||||
case we are running the RF Pipe model.
|
||||
|
||||
### Generated Files
|
||||
|
||||
|Name|Description|
|
||||
|---|---|
|
||||
|\<node name>-platform.xml|configuration file for the emulator instances|
|
||||
|\<interface name>-nem.xml|configuration for creating a NEM|
|
||||
|\<interface name>-mac.xml|configuration for defining a NEMs MAC layer|
|
||||
|\<interface name>-phy.xml|configuration for defining a NEMs PHY layer|
|
||||
|\<interface name>-trans-virtual.xml|configuration when a virtual transport is being used|
|
||||
|\<interface name>-trans.xml|configuration when a raw transport is being used|
|
||||
|
||||
### Listing File
|
||||
Below are the files within n1 after starting the demo session.
|
||||
|
||||
```shell
|
||||
root@n1:/tmp/pycore.46777/n1.conf# ls
|
||||
eth0-mac.xml eth0-trans-virtual.xml n1-platform.xml var.log
|
||||
eth0-nem.xml ipforward.sh quaggaboot.sh var.run
|
||||
eth0-phy.xml n1-emane.log usr.local.etc.quagga var.run.quagga
|
||||
```
|
||||
|
||||
### Platform XML
|
||||
The root configuration file used to run EMANE for a node is the platform xml file.
|
||||
In this demo we are looking at `n1-platform.xml`.
|
||||
|
||||
* lists all configuration values set for the platform
|
||||
* The unique nem id given for each interface that EMANE will create for this node
|
||||
* The path to the file(s) used for definition for a given nem
|
||||
|
||||
```shell
|
||||
root@n1:/tmp/pycore.46777/n1.conf# cat n1-platform.xml
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE platform SYSTEM "file:///usr/share/emane/dtd/platform.dtd">
|
||||
<platform>
|
||||
<param name="antennaprofilemanifesturi" value=""/>
|
||||
<param name="controlportendpoint" value="0.0.0.0:47000"/>
|
||||
<param name="eventservicedevice" value="ctrl0"/>
|
||||
<param name="eventservicegroup" value="224.1.2.8:45703"/>
|
||||
<param name="eventservicettl" value="1"/>
|
||||
<param name="otamanagerchannelenable" value="1"/>
|
||||
<param name="otamanagerdevice" value="ctrl0"/>
|
||||
<param name="otamanagergroup" value="224.1.2.8:45702"/>
|
||||
<param name="otamanagerloopback" value="0"/>
|
||||
<param name="otamanagermtu" value="0"/>
|
||||
<param name="otamanagerpartcheckthreshold" value="2"/>
|
||||
<param name="otamanagerparttimeoutthreshold" value="5"/>
|
||||
<param name="otamanagerttl" value="1"/>
|
||||
<param name="stats.event.maxeventcountrows" value="0"/>
|
||||
<param name="stats.ota.maxeventcountrows" value="0"/>
|
||||
<param name="stats.ota.maxpacketcountrows" value="0"/>
|
||||
<nem id="1" name="tap1.0.f" definition="eth0-nem.xml">
|
||||
<transport definition="eth0-trans-virtual.xml">
|
||||
<param name="device" value="eth0"/>
|
||||
</transport>
|
||||
</nem>
|
||||
</platform>
|
||||
```
|
||||
|
||||
### NEM XML
|
||||
The nem definition will contain reference to the transport, mac, and phy xml
|
||||
definitions being used for a given nem.
|
||||
|
||||
```shell
|
||||
root@n1:/tmp/pycore.46777/n1.conf# cat eth0-nem.xml
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE nem SYSTEM "file:///usr/share/emane/dtd/nem.dtd">
|
||||
<nem name="emane_rfpipe NEM">
|
||||
<transport definition="eth0-trans-virtual.xml"/>
|
||||
<mac definition="eth0-mac.xml"/>
|
||||
<phy definition="eth0-phy.xml"/>
|
||||
</nem>
|
||||
```
|
||||
|
||||
### MAC XML
|
||||
MAC layer configuration settings would be found in this file. CORE will write
|
||||
out all values, even if the value is a default value.
|
||||
|
||||
```shell
|
||||
root@n1:/tmp/pycore.46777/n1.conf# cat eth0-mac.xml
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE mac SYSTEM "file:///usr/share/emane/dtd/mac.dtd">
|
||||
<mac name="emane_rfpipe MAC" library="rfpipemaclayer">
|
||||
<param name="datarate" value="1000000"/>
|
||||
<param name="delay" value="0.000000"/>
|
||||
<param name="enablepromiscuousmode" value="0"/>
|
||||
<param name="flowcontrolenable" value="0"/>
|
||||
<param name="flowcontroltokens" value="10"/>
|
||||
<param name="jitter" value="0.000000"/>
|
||||
<param name="neighbormetricdeletetime" value="60.000000"/>
|
||||
<param name="pcrcurveuri" value="/usr/share/emane/xml/models/mac/rfpipe/rfpipepcr.xml"/>
|
||||
<param name="radiometricenable" value="0"/>
|
||||
<param name="radiometricreportinterval" value="1.000000"/>
|
||||
</mac>
|
||||
```
|
||||
|
||||
### PHY XML
|
||||
PHY layer configuration settings would be found in this file. CORE will write
|
||||
out all values, even if the value is a default value.
|
||||
|
||||
```shell
|
||||
root@n1:/tmp/pycore.46777/n1.conf# cat eth0-phy.xml
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE phy SYSTEM "file:///usr/share/emane/dtd/phy.dtd">
|
||||
<phy name="emane_rfpipe PHY">
|
||||
<param name="bandwidth" value="1000000"/>
|
||||
<param name="fading.model" value="none"/>
|
||||
<param name="fading.nakagami.distance0" value="100.000000"/>
|
||||
<param name="fading.nakagami.distance1" value="250.000000"/>
|
||||
<param name="fading.nakagami.m0" value="0.750000"/>
|
||||
<param name="fading.nakagami.m1" value="1.000000"/>
|
||||
<param name="fading.nakagami.m2" value="200.000000"/>
|
||||
<param name="fixedantennagain" value="0.000000"/>
|
||||
<param name="fixedantennagainenable" value="1"/>
|
||||
<param name="frequency" value="2347000000"/>
|
||||
<param name="frequencyofinterest" value="2347000000"/>
|
||||
<param name="noisebinsize" value="20"/>
|
||||
<param name="noisemaxclampenable" value="0"/>
|
||||
<param name="noisemaxmessagepropagation" value="200000"/>
|
||||
<param name="noisemaxsegmentduration" value="1000000"/>
|
||||
<param name="noisemaxsegmentoffset" value="300000"/>
|
||||
<param name="noisemode" value="none"/>
|
||||
<param name="propagationmodel" value="2ray"/>
|
||||
<param name="subid" value="1"/>
|
||||
<param name="systemnoisefigure" value="4.000000"/>
|
||||
<param name="timesyncthreshold" value="10000"/>
|
||||
<param name="txpower" value="0.000000"/>
|
||||
</phy>
|
||||
```
|
||||
|
||||
### Transport XML
|
||||
```shell
|
||||
root@n1:/tmp/pycore.46777/n1.conf# cat eth0-trans-virtual.xml
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE transport SYSTEM "file:///usr/share/emane/dtd/transport.dtd">
|
||||
<transport name="Virtual Transport" library="transvirtual">
|
||||
<param name="bitrate" value="0"/>
|
||||
<param name="devicepath" value="/dev/net/tun"/>
|
||||
</transport>
|
||||
```
|
104
docs/emane/gpsd.md
Normal file
104
docs/emane/gpsd.md
Normal file
|
@ -0,0 +1,104 @@
|
|||
# EMANE GPSD Integration
|
||||
* Table of Contents
|
||||
{:toc}
|
||||
|
||||
## Overview
|
||||
Introduction to integrating gpsd in CORE with EMANE.
|
||||
|
||||
[EMANE Demo 0](https://github.com/adjacentlink/emane-tutorial/wiki/Demonstration-0)
|
||||
may provide more helpful details.
|
||||
|
||||
> **WARNING:** requires installation of [gpsd](https://gpsd.gitlab.io/gpsd/index.html)
|
||||
|
||||
## Run Demo
|
||||
1. Select `Open...` within the GUI
|
||||
1. Load `emane-demo-gpsd.xml`
|
||||
1. Click ![Start Button](../static/gui/start.gif)
|
||||
1. After startup completes, double click n1 to bring up the nodes terminal
|
||||
|
||||
## Example Demo
|
||||
This section will cover how to run a gpsd location agent within EMANE, that will
|
||||
write out locations to a pseudo terminal file. That file can be read in by the
|
||||
gpsd server and make EMANE location events available to gpsd clients.
|
||||
|
||||
### EMANE GPSD Event Daemon
|
||||
First create an `eventdaemon.xml` file on n1 with the following contents.
|
||||
```shell
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE eventdaemon SYSTEM "file:///usr/share/emane/dtd/eventdaemon.dtd">
|
||||
<eventdaemon nemid="1">
|
||||
<param name="eventservicegroup" value="224.1.2.8:45703"/>
|
||||
<param name="eventservicedevice" value="ctrl0"/>
|
||||
<agent definition="gpsdlocationagent.xml"/>
|
||||
</eventdaemon>
|
||||
```
|
||||
|
||||
Then create the `gpsdlocationagent.xml` file on n1 with the following contents.
|
||||
```shell
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE eventagent SYSTEM "file:///usr/share/emane/dtd/eventagent.dtd">
|
||||
<eventagent library="gpsdlocationagent">
|
||||
<param name="pseudoterminalfile" value="gps.pty"/>
|
||||
</eventagent>
|
||||
```
|
||||
|
||||
Start the EMANE event agent. This will facilitate feeding location events
|
||||
out to a pseudo terminal file defined above.
|
||||
```shell
|
||||
emaneeventd eventdaemon.xml -r -d -l 3 -f emaneeventd.log
|
||||
```
|
||||
|
||||
Start gpsd, reading in the pseudo terminal file.
|
||||
```shell
|
||||
gpsd -G -n -b $(cat gps.pty)
|
||||
```
|
||||
|
||||
### EMANE EEL Event Daemon
|
||||
|
||||
EEL Events will be played out from the actual host machine over the designated
|
||||
control network interface. Create the following files in the same directory
|
||||
somewhere on your host.
|
||||
|
||||
Create `eventservice.xml` on the host machine with the following contents.
|
||||
|
||||
> **NOTE:** make sure the below eventservicedevice matches the control network
|
||||
> device being used on the host for EMANE
|
||||
|
||||
```shell
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE eventservice SYSTEM "file:///usr/share/emane/dtd/eventservice.dtd">
|
||||
<eventservice>
|
||||
<param name="eventservicegroup" value="224.1.2.8:45703"/>
|
||||
<param name="eventservicedevice" value="b.9001.1"/>
|
||||
<generator definition="eelgenerator.xml"/>
|
||||
</eventservice>
|
||||
```
|
||||
|
||||
Create `eelgenerator.xml` on the host machine with the following contents.
|
||||
```shell
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE eventgenerator SYSTEM "file:///usr/share/emane/dtd/eventgenerator.dtd">
|
||||
<eventgenerator library="eelgenerator">
|
||||
<param name="inputfile" value="scenario.eel" />
|
||||
<paramlist name="loader">
|
||||
<item value="commeffect:eelloadercommeffect:delta"/>
|
||||
<item value="location,velocity,orientation:eelloaderlocation:delta"/>
|
||||
<item value="pathloss:eelloaderpathloss:delta"/>
|
||||
<item value="antennaprofile:eelloaderantennaprofile:delta"/>
|
||||
</paramlist>
|
||||
</eventgenerator>
|
||||
```
|
||||
|
||||
Create `scenario.eel` file with the following contents.
|
||||
```shell
|
||||
0.0 nem:1 location gps 40.031075,-74.523518,3.000000
|
||||
0.0 nem:2 location gps 40.031165,-74.523412,3.000000
|
||||
```
|
||||
|
||||
Start the EEL event service, which will send the events defined in the file above
|
||||
over the control network to all EMANE nodes. These location events will be received
|
||||
and provided to gpsd. This allow gpsd client to connect to and get gps locations.
|
||||
```shell
|
||||
emaneeventservice eventservice.xml -l 3
|
||||
```
|
||||
|
80
docs/emane/precomputed.md
Normal file
80
docs/emane/precomputed.md
Normal file
|
@ -0,0 +1,80 @@
|
|||
# EMANE Procomputed
|
||||
* Table of Contents
|
||||
{:toc}
|
||||
|
||||
## Overview
|
||||
Introduction to using the precomputed propagation model.
|
||||
|
||||
[EMANE Demo 1](https://github.com/adjacentlink/emane-tutorial/wiki/Demonstration-1)
|
||||
for more specifics.
|
||||
|
||||
### Run Demo
|
||||
1. Select `Open...` within the GUI
|
||||
1. Load `emane-demo-precomputed.xml`
|
||||
1. Click ![Start Button](../static/gui/start.gif)
|
||||
1. After startup completes, double click n1 to bring up the nodes terminal
|
||||
|
||||
## Example Demo
|
||||
This demo is uing the RF Pipe model witht he propagation model set to
|
||||
precomputed.
|
||||
|
||||
### Failed Pings
|
||||
Due to using precomputed and having not sent any pathloss events, the nodes
|
||||
cannot ping eachother yet.
|
||||
|
||||
Open a terminal on n1.
|
||||
```shell
|
||||
root@n1:/tmp/pycore.46777/n1.conf# ping 10.0.0.2
|
||||
connect: Network is unreachable
|
||||
```
|
||||
|
||||
### EMANE Shell
|
||||
You can leverage `emanesh` to investigate why packets are being dropped.
|
||||
```shell
|
||||
root@n1:/tmp/pycore.46777/n1.conf# emanesh localhost get table nems phy BroadcastPacketDropTable0 UnicastPacketDropTable0
|
||||
nem 1 phy BroadcastPacketDropTable0
|
||||
| NEM | Out-of-Band | Rx Sensitivity | Propagation Model | Gain Location | Gain Horizon | Gain Profile | Not FOI | Spectrum Clamp | Fade Location | Fade Algorithm | Fade Select |
|
||||
| 2 | 0 | 0 | 169 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
|
||||
nem 1 phy UnicastPacketDropTable0
|
||||
| NEM | Out-of-Band | Rx Sensitivity | Propagation Model | Gain Location | Gain Horizon | Gain Profile | Not FOI | Spectrum Clamp | Fade Location | Fade Algorithm | Fade Select |
|
||||
```
|
||||
|
||||
In the example above we can see that the reason packets are being dropped is due to
|
||||
the propogation model and that is because we have not issued any pathloss events.
|
||||
You can run another command to validate if you have received any pathloss events.
|
||||
```shell
|
||||
root@n1:/tmp/pycore.46777/n1.conf# emanesh localhost get table nems phy PathlossEventInfoTable
|
||||
nem 1 phy PathlossEventInfoTable
|
||||
| NEM | Forward Pathloss | Reverse Pathloss |
|
||||
```
|
||||
|
||||
### Pathloss Events
|
||||
On the host we will send pathloss events from all nems to all other nems.
|
||||
|
||||
> **NOTE:** make sure properly specify the right control network device
|
||||
|
||||
```shell
|
||||
emaneevent-pathloss 1:2 90 -i <controlnet device>
|
||||
```
|
||||
|
||||
Now if we check for pathloss events on n2 we will see what was just sent above.
|
||||
```shell
|
||||
root@n1:/tmp/pycore.46777/n1.conf# emanesh localhost get table nems phy PathlossEventInfoTable
|
||||
nem 1 phy PathlossEventInfoTable
|
||||
| NEM | Forward Pathloss | Reverse Pathloss |
|
||||
| 2 | 90.0 | 90.0
|
||||
```
|
||||
|
||||
You should also now be able to ping n1 from n2.
|
||||
```shell
|
||||
root@n1:/tmp/pycore.46777/n1.conf# ping -c 3 10.0.0.2
|
||||
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
|
||||
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=3.06 ms
|
||||
64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=2.12 ms
|
||||
64 bytes from 10.0.0.2: icmp_seq=3 ttl=64 time=1.99 ms
|
||||
|
||||
--- 10.0.0.2 ping statistics ---
|
||||
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
|
||||
rtt min/avg/max/mdev = 1.991/2.393/3.062/0.479 ms
|
||||
```
|
Loading…
Reference in a new issue