Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Demonstration 5

Steven Galgano edited this page Apr 10, 2017 · 6 revisions

Purpose

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

Background information for this demonstration includes:

Activity 1 - Interference sources

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.

  1. Change directory into the Demonstration 5 directory

    [me@host emane-tutorial]$ cd 5
    
  2. 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:

    1. NEM 2 will use a pathloss of 50dB for packets from NEM 1
    2. NEM 2 will use a pathloss of 44dB for packets from NEM 3
    3. NEM 2 will use a pathloss of 45dB for packets from NEM 4

    Reviewing ieee80211abgmac.xml and rfpipeabgmac.xml we see that:

    1. All nodes are using a fixed antenna gain of 0dBi
    2. 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 + rxAntennaGainpathloss

    Where,
    txPower is 0 dBm for all
    txAntennaGain is 0 dBi for all
    rxAntennaGain is 0dBi for all

    Transmitter NEM 2 rxPower (dBm)
    1 -50 dBm
    3 -44 dBm
    4 -45 dBm
  3. 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.

    1. NEM 1 sends 640bps (64 byte packet x 10 per second) to NEM 2

    2. NEM 1 sends 81.92Kbps (1024 byte packet x 10 per second) to NEM 2

    3. 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

    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

    5. 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

    6. 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

  4. Based on the flows, let's compute the expected SINR at NEM 2 for each of the stages.

    1. 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

    2. 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

    3. NEM 1 is sending 64 byte packets. NEM 3 transmissions will be interfering with NEM 1 transmissions.

      SINR = -50 - (-44)

      SINR = -6

    4. NEM 1 is sending 1024 byte packets. NEM 3 transmissions will be interfering with NEM 1 transmissions.

      SINR = -6

    5. NEM 1 is sending 64 byte packets. NEM 4 transmissions will be interfering with NEM 1 transmissions.

      SINR = -50 - (-45)

      SINR = -5

    6. NEM 1 is sending 1024 byte packets. NEM 4 transmissions will be interfering with NEM 1 transmissions.

      SINR = -5

  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.

  6. 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
    
  7. 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 
    
  8. 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%
  9. Once you are finished, stop the demonstration with demo-stop.

    [me@host 5]$ sudo ./demo-stop
    
Clone this wiki locally