-
Notifications
You must be signed in to change notification settings - Fork 15
Demonstration 5
This demonstration will use the IEEE 802.11abg and RF Pipe radio models to demonstrate the noise processing capabilities of the emulator physical layer.
Background information for this demonstration includes:
This activity will create a two node IEEE 802.11abg network (NEM 1 and NEM 2) and a two node RF Pipe network (NEM 3 and NEM 4). Since all the NEMs will be transmitting at 2.347GHz, RF Pipe network communications will interfere with (jam) the communications of the IEEE 802.11abg network.
-
Change directory into the Demonstration 5 directory
[me@host emane-tutorial]$ cd 5
-
Let's take a look at the scenario.eel file to see the pathloss between node pairs.
0.0 nem:1 pathloss nem:2,50 nem:3,44 nem:4,45 0.0 nem:2 pathloss nem:1,50 nem:3,44 nem:4,45 0.0 nem:3 pathloss nem:1,44 nem:2,44 nem:4,50 0.0 nem:4 pathloss nem:1,45 nem:2,45 nem:3,50
Here's what's important:
- NEM 2 will use a pathloss of 50dB for packets from NEM 1
- NEM 2 will use a pathloss of 44dB for packets from NEM 3
- NEM 2 will use a pathloss of 45dB for packets from NEM 4
Reviewing ieee80211abgmac.xml and rfpipeabgmac.xml we see that:
- All nodes are using a fixed antenna gain of 0dBi
- All nodes are using a txpower of 0dBm
If we calculate the receive power at NEM 2 for packets received from NEMs 1, 3 and 4 it will help better understand what we are about to see.
rxPower = txPower + txAntennaGain + rxAntennaGain − pathloss
Where,
txPower is 0 dBm for all
txAntennaGain is 0 dBi for all
rxAntennaGain is 0dBi for allTransmitter NEM 2 rxPower (dBm) 1 -50 dBm 3 -44 dBm 4 -45 dBm -
Take a look at the mgen flows that will be used during this demonstration.
node-1 mgen flows:
1.0 ON 1 UDP SRC 5001 DST 10.100.0.2/5001 PERIODIC [10 64] 20.0 OFF 1 30.0 ON 2 UDP SRC 5001 DST 10.100.0.2/5001 PERIODIC [10 1024] 50.0 OFF 2 60.0 ON 3 UDP SRC 5001 DST 10.100.0.2/5001 PERIODIC [10 64] 80.0 OFF 3 90.0 ON 4 UDP SRC 5001 DST 10.100.0.2/5001 PERIODIC [10 1024] 110.0 OFF 4 120.0 ON 5 UDP SRC 5001 DST 10.100.0.2/5001 PERIODIC [10 64] 140.0 OFF 5 150.0 ON 6 UDP SRC 5001 DST 10.100.0.2/5001 PERIODIC [10 1024] 170.0 OFF 6
node-2 mgen flows:
0.0 LISTEN UDP 5001 175.0 IGNORE UDP 5001
node-3 mgen flows:
60.0 ON 1 UDP SRC 5001 DST 10.100.0.4/5001 PERIODIC [150 1024] 110.0 OFF 1
node-4 mgen flows:
120.0 ON 1 UDP SRC 5001 DST 10.100.0.3/5001 PERIODIC [150 1024] 170.0 OFF 1
These flows create six stages for this demonstration.
-
NEM 1 sends 640bps (64 byte packet x 10 per second) to NEM 2
-
NEM 1 sends 81.92Kbps (1024 byte packet x 10 per second) to NEM 2
-
NEM 1 sends 640bps (64 byte packet x 10 per second) to NEM 2
NEM 3 sends 1.23Mbps (1024 byte packet x 150 per second) to NEM 4 -
NEM 1 sends 81.92Kbps (1024 byte packet x 10 per second) to NEM 2
NEM 3 sends 1.23Mbps (1024 byte packet x 150 per second) to NEM 4 -
NEM 1 sends 640bps (64 byte packet x 10 per second) to NEM 2
NEM 4 sends 1.23Mbps (1024 byte packet x 150 per second) to NEM 3 -
NEM 1 sends 81.92Kbps (1024 byte packet x 10 per second) to NEM 2
NEM 4 sends 1.23Mbps (1024 byte packet x 150 per second) to NEM 3
-
-
Based on the flows, let's compute the expected SINR at NEM 2 for each of the stages.
-
NEM 1 is sending 64 byte packets. There are no interference sources for this stage. The noise floor will be equal to the receiver sensitivity.
rxSensitivity = −174 + noiseFigure + 10log(bandWidth)
-97 = -174 + 4dB + 10log(20M)
SINR = rxPower - rxSensitivity
SINR = -50 - (-97)
SINR = 47
-
NEM 1 is sending 1024 byte packets. There are no interference sources for this stage. The noise floor will be equal to the receiver sensitivity.
SINR = 47
-
NEM 1 is sending 64 byte packets. NEM 3 transmissions will be interfering with NEM 1 transmissions.
SINR = -50 - (-44)
SINR = -6
-
NEM 1 is sending 1024 byte packets. NEM 3 transmissions will be interfering with NEM 1 transmissions.
SINR = -6
-
NEM 1 is sending 64 byte packets. NEM 4 transmissions will be interfering with NEM 1 transmissions.
SINR = -50 - (-45)
SINR = -5
-
NEM 1 is sending 1024 byte packets. NEM 4 transmissions will be interfering with NEM 1 transmissions.
SINR = -5
-
-
Let's start the demonstration and see what happens
[me@host 5]$ sudo ./demo-start
It will take 30 seconds for the demonstration to start.
-
While the demonstration is running you will be monitoring node-1's UnicastPacketAcceptTable0 and node-2's NeighborStatusTable, UnicastPacketAcceptTable0 and UnicastPacketDropTable0 tables. This happens automatically via the host-poststart script.
nem 1 mac UnicastPacketAcceptTable0 | NEM | Num Pkts Tx | Num Bytes Tx | Num Pkts Rx | Num Bytes Rx | | 1 | 81 | 15147 | 0 | 0 | | 2 | 0 | 0 | 1 | 42 | . nem 2 mac NeighborStatusTable | NEM | Rx Pkts | Tx Pkts | Missed Pkts | BW Util Ratio | SINR Avg | NF Avg | Rx Age | | 1 | 10 | 0 | 0 | 0.0213701110333 | 46.9896965027 | -96.989692688 | 0.020251205191 | | 65535 | 0 | 0 | 0 | 0.0 | 0.0 | 0.0 | 0.0 | . nem 2 mac UnicastPacketAcceptTable0 | NEM | Num Pkts Tx | Num Bytes Tx | Num Pkts Rx | Num Bytes Rx | | 1 | 0 | 0 | 82 | 13940 | | 2 | 1 | 59 | 0 | 0 | . nem 2 mac UnicastPacketDropTable0 | NEM | SINR | Reg Id | Dst MAC | Queue Overflow | Bad Control | Bad Spectrum Query | Flow Control | Duplicate | Rx During Tx | Hidden Busy | . == Stage 1 of 6 in progress NEM 1 sends 10.24Kbps to NEM 2
-
Packet completion rates will be calculated at the conclusion of the final stage.
Stage 1 2 3 4 5 6 ----- ------ ------ ------ ------ ------ ------ Tx 1 190 201 201 201 201 201 Rx 2 190 201 135 4 191 83 ----- ------ ------ ------ ------ ------ ------ Comp% 100.00 100.00 67.16 1.99 95.02 41.29
-
Let's see if they match what we expected. Using the SINR, we can lookup the Packet Completion Rate (PCR) values for the IEEE 802.11abg radio model.
We can find the unicastrate and the mode from ieee80211abgmac.xml .
<mac library="ieee80211abgmaclayer"> <param name="mode" value="2"/> <param name="enablepromiscuousmode" value="off"/> <param name="distance" value="1000"/> <param name="unicastrate" value="1"/> <param name="multicastrate" value="1"/> <param name="rtsthreshold" value="0"/> <param name="pcrcurveuri" value="file:///usr/share/emane/xml/models/mac/ieee80211abg/ieee80211pcr.xml"/> <param name="flowcontrolenable" value="off"/> <param name="flowcontroltokens" value="10"/> <param name="radiometricenable" value="off"/> <param name="retrylimit0" value="0"/> <param name="retrylimit1" value="0"/> <param name="retrylimit2" value="0"/> <param name="retrylimit3" value="0"/> <param name="queuesize0" value="50"/> <param name="queuesize1" value="50"/> <param name="queuesize2" value="50"/> <param name="queuesize3" value="50"/> </mac>
We'll be using the datarate 1 IEEE 802.11b curve.
Stage Payload Size Calculated SINR Lookup POR Adjusted POR 1 64 47 100% 100% 2 1024 47 100% 100% 3 64 -6 63.5% 63.5% 4 1024 -6 63.5% .635^(1024/128) * 100 = 2.6% 5 64 -5 90.7% 90.7% 6 1024 -5 90.7% .907^(1024/128) * 100 = 45.8% -
Once you are finished, stop the demonstration with demo-stop.
[me@host 5]$ 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.