-
Notifications
You must be signed in to change notification settings - Fork 15
Demonstration 6
This demonstration will use the RF Pipe radio model to demonstrate physical layer antenna profile usage.
Background information for this demonstration includes:
This activity will create a four node RF Pipe network. NEMs 2 and 3 are each configured to use an omni-directional antenna. NEMs 1 and 4 are each configured to use a directional antenna. We'll use a series of antenna profile and location events to change the network topology in order to visualize the physical layer's antenna gain computation capability.
-
Change directory into the Demonstration 6 directory
[me@host emane-tutorial]$ cd 6
-
Let's take a look at platform2.xml, one of the omni-directional NEMs.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE platform SYSTEM "file:///usr/share/emane/dtd/platform.dtd"> <platform> <param name="otamanagerchannelenable" value="on"/> <param name="otamanagerdevice" value="eth1"/> <param name="otamanagergroup" value="224.1.2.8:45702"/> <param name="eventservicegroup" value="224.1.2.8:45703"/> <param name="eventservicedevice" value="eth1"/> <param name="controlportendpoint" value="0.0.0.0:47000"/> <param name="antennaprofilemanifesturi" value="antennaprofilemanifest.xml"/> <nem id="2" definition="rfpipenem.xml"> <transport definition="transvirtual.xml"> <param name="address" value="10.100.0.2"/> <param name="mask" value="255.255.255.0"/> </transport> </nem> </platform>
There is new parameter present that we have not seen before: antennaprofilemanifesturi. This parameter tells the emulator to load a manifest of antenna and blockage profiles. Every emulator instance taking part in this emulation will need to load the same manifest.
If you follow the indirection chain to rfpipenem.xml and then onto rfpipemac.xml, you will see the usual configuration we have been using so far. The most important item to notice is that NEM 2 will be using a fixedantennagain of 0dbi.
A quick comparison with platform3.xml will show that NEM 3 is using a fixedantennagain of 5dbi.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE platform SYSTEM "file:///usr/share/emane/dtd/platform.dtd"> <platform> <param name="otamanagerchannelenable" value="on"/> <param name="otamanagerdevice" value="eth1"/> <param name="otamanagergroup" value="224.1.2.8:45702"/> <param name="eventservicegroup" value="224.1.2.8:45703"/> <param name="eventservicedevice" value="eth1"/> <param name="controlportendpoint" value="0.0.0.0:47000"/> <param name="antennaprofilemanifesturi" value="antennaprofilemanifest.xml"/> <nem id="3" definition="rfpipenem.xml"> <transport definition="transvirtual.xml"> <param name="address" value="10.100.0.3"/> <param name="mask" value="255.255.255.0"/> </transport> <phy> <param name="fixedantennagain" value="5"/> </phy> </nem> </platform>
The takeaway here is that even if an NEM is using fixedantennagain, as long as at least one NEM in the emulation is using antenna profiles, all emulator instances must be configured with the same antenna profile manifest.
-
Now let's look at the configuration for one of the antenna profile enabled nodes: platform1.xml.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE platform SYSTEM "file:///usr/share/emane/dtd/platform.dtd"> <platform> <param name="otamanagerchannelenable" value="on"/> <param name="otamanagerdevice" value="eth1"/> <param name="otamanagergroup" value="224.1.2.8:45702"/> <param name="eventservicegroup" value="224.1.2.8:45703"/> <param name="eventservicedevice" value="eth1"/> <param name="controlportendpoint" value="0.0.0.0:47000"/> <param name="antennaprofilemanifesturi" value="antennaprofilemanifest.xml"/> <nem id="1" definition="rfpipenem.xml"> <transport definition="transvirtual.xml"> <param name="address" value="10.100.0.1"/> <param name="mask" value="255.255.255.0"/> </transport> <phy> <param name="fixedantennagainenable" value="off"/> </phy> </nem> </platform>
The only difference between what we have seen so far, is that fixedantennagainenable is off. platform4.xml is identical to platform1.xml, with just the NEM Id and the transport boundary address differing.
-
In order to use antenna profiles, all NEMs must be aware of the location and the antenna profile information in use by all NEMs using antenna profiles. In this demonstration, we will be publishing this information using the emaneeventservice.
Take a look at scenario.eel.
0.0 nem:1 antennaprofile 1,0.0,0.0 0.0 nem:4 antennaprofile 2,0.0,0.0 # 0.0 nem:1 pathloss nem:2,60 nem:3,60 nem:4,60 0.0 nem:2 pathloss nem:3,60 nem:4,60 0.0 nem:3 pathloss nem:4,60 # 0.0 nem:1 location gps 40.025495,-74.315441,3.0 0.0 nem:2 location gps 40.025495,-74.312501,3.0 0.0 nem:3 location gps 40.023235,-74.315441,3.0 0.0 nem:4 location gps 40.023235,-74.312501,3.0 0.0 nem:4 velocity 180.0,0.0,10.0 # 30.0 nem:1 velocity 20.0,0.0,10.0 30.0 nem:1 orientation 0.0,0.0,10.0 30.0 nem:1 antennaprofile 1,60.0,0.0 30.0 nem:4 velocity 270.0,0.0,10.0 # 60.0 nem:1 antennaprofile 1,105.0,0.0 60.0 nem:4 antennaprofile 2,45.0,0.0 # 90.0 nem:1 velocity 90.0,0.0,10.0 90.0 nem:1 orientation 0.0,0.0,0.0 90.0 nem:1 antennaprofile 1,45.0,0.0
This scenario contains four stages:
-
NEM 2 and NEM 3 see each other
NEM 4 and NEM 3 are pointing away -
NEM 2 and NEM 3 see each other
NEM 1 and NEM 2 see each other
NEM 4 and NEM 3 see each other -
NEM 2 and NEM 3 see each other
NEM 4 and NEM 3 are pointing at each other but blocked -
NEM 2 and NEM 3 see each other
NEM 4 and NEM 3 see each other
The four stages are illustrated below:
The antenna and blockage patterns for each stage:
-
-
Start up the OLSR topology viewer
[me@host 6]$ ../scripts/olsrlinkview.py &
-
Let's start the demonstration and see what happens
[me@host 6]$ sudo ./demo-start
It will take 30 seconds for the demonstration to start.
While the demonstration is running, you'll see links form in accordance with the four stages of the demonstration.
You will also see the emaneevent-dump of the published events.
[1395517938.610985] nem: 0 event: 102 len: 48 seq: 1 [AntennaProfile] UUID: c21c254a-7c1f-4a30-8b98-ee3b6ff2e6c3 (1, {'profile': 1, 'elevation': 0.0, 'azimuth': 0.0}) (4, {'profile': 2, 'elevation': 0.0, 'azimuth': 0.0}) [1395517938.611699] nem: 0 event: 100 len: 161 seq: 2 [Location] UUID: c21c254a-7c1f-4a30-8b98-ee3b6ff2e6c3 (1, {'latitude': 40.025495, 'altitude': 3.0, 'longitude': -74.315441}) (2, {'latitude': 40.025495, 'altitude': 3.0, 'longitude': -74.312501}) (3, {'latitude': 40.023235, 'altitude': 3.0, 'longitude': -74.315441}) (4, {'elevation': 0.0, 'altitude': 3.0, 'longitude': -74.312501, 'magnitude': 10.0, 'azimuth': 180.0, 'latitude': 40.023235}) [1395517938.612090] nem: 1 event: 101 len: 42 seq: 3 [Pathloss] UUID: c21c254a-7c1f-4a30-8b98-ee3b6ff2e6c3 (2, {'forward': 60.0, 'reverse': 60.0}) (3, {'forward': 60.0, 'reverse': 60.0}) (4, {'forward': 60.0, 'reverse': 60.0}) [1395517938.612404] nem: 2 event: 101 len: 42 seq: 4 [Pathloss] UUID: c21c254a-7c1f-4a30-8b98-ee3b6ff2e6c3 (1, {'forward': 60.0, 'reverse': 60.0}) (3, {'forward': 60.0, 'reverse': 60.0}) (4, {'forward': 60.0, 'reverse': 60.0}) [1395517938.612699] nem: 3 event: 101 len: 42 seq: 5 [Pathloss] UUID: c21c254a-7c1f-4a30-8b98-ee3b6ff2e6c3 (1, {'forward': 60.0, 'reverse': 60.0}) (2, {'forward': 60.0, 'reverse': 60.0}) (4, {'forward': 60.0, 'reverse': 60.0}) [1395517938.612989] nem: 4 event: 101 len: 42 seq: 6 [Pathloss] UUID: c21c254a-7c1f-4a30-8b98-ee3b6ff2e6c3 (1, {'forward': 60.0, 'reverse': 60.0}) (2, {'forward': 60.0, 'reverse': 60.0}) (3, {'forward': 60.0, 'reverse': 60.0}) [1395517968.610256] nem: 0 event: 102 len: 24 seq: 7 [AntennaProfile] UUID: c21c254a-7c1f-4a30-8b98-ee3b6ff2e6c3 (1, {'profile': 1, 'elevation': 0.0, 'azimuth': 60.0}) [1395517968.610710] nem: 0 event: 100 len: 153 seq: 8 [Location] UUID: c21c254a-7c1f-4a30-8b98-ee3b6ff2e6c3 (1, {'elevation': 0.0, 'altitude': 3.0, 'pitch': 0.0, 'longitude': -74.315441, 'magnitude': 10.0, 'azimuth': 20.0, 'latitude': 40.025495, 'yaw': 10.0, 'roll': 0.0}) (4, {'elevation': 0.0, 'altitude': 3.0, 'longitude': -74.312501, 'magnitude': 10.0, 'azimuth': 270.0, 'latitude': 40.023235}) [1395517998.610222] nem: 0 event: 102 len: 48 seq: 9 [AntennaProfile] UUID: c21c254a-7c1f-4a30-8b98-ee3b6ff2e6c3 (1, {'profile': 1, 'elevation': 0.0, 'azimuth': 105.0}) (4, {'profile': 2, 'elevation': 0.0, 'azimuth': 45.0}) [1395518028.610701] nem: 0 event: 102 len: 24 seq: 10 [AntennaProfile] UUID: c21c254a-7c1f-4a30-8b98-ee3b6ff2e6c3 (1, {'profile': 1, 'elevation': 0.0, 'azimuth': 45.0}) [1395518028.611118] nem: 0 event: 100 len: 91 seq: 11 [Location] UUID: c21c254a-7c1f-4a30-8b98-ee3b6ff2e6c3 (1, {'elevation': 0.0, 'altitude': 3.0, 'pitch': 0.0, 'longitude': -74.315441, 'magnitude': 10.0, 'azimuth': 90.0, 'latitude': 40.025495, 'yaw': 0.0, 'roll': 0.0})
-
Once you are finished, stop the demonstration with demo-stop.
X marks the spot.[me@host 6]$ sudo ./demo-stop
Copyright (c) 2014-2018 - Adjacent Link LLC, Bridgewater, New Jersey
Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution 4.0 International License.