-
Notifications
You must be signed in to change notification settings - Fork 38
Description
Hi,
My goal is to simulate sending voice/video traffic using MGEN. My understanding is these are different traffic classes that I want map to different traffic queues using the WMM enabled functionality in the IEEE 802.11abg radio model.
I am using:
- EMANE version 1.3.3
- ETCE
- OLSRD version 9.8, where my config file has IpVersion set to 4
- IEEE 802.11abg radio model from EMANE with wmmenable true
My assumption was that if I changed the TOS value in the flow definitions in MGEN scripts, this would change the Class of the flow's traffic (e.g. TOS 96==0x60=>CS3, TOS 64==0x40=>CS2, TOS 32==0x20=>CS1), which should map to all the different queues corresponding to the "four different traffic classes" in the IEEE 802.11abg radio model.
Here is my mgen.script file (node-1):
TTL 64
0.0 LISTEN UDP 5001
0.0 JOIN 225.1.20.1 INTERFACE bmf0
1.0 ON 1 UDP SRC 5001 DST 225.1.20.1/5001 BURST [RANDOM 10.0 PERIODIC [1 1024] EXPONENTIAL 5.0] TOS 0x20 INTERFACE bmf0
20.0 OFF 1
25.0 ON 250 UDP SRC 5002 DST 225.1.20.1/5001 BURST [RANDOM 10.0 PERIODIC [1 1024] EXPONENTIAL 5.0] TOS 0x40 INTERFACE bmf0
40.0 ON 500 UDP SRC 5003 DST 225.1.20.1/5001 BURST [RANDOM 10.0 PERIODIC [1 1024] EXPONENTIAL 5.0] TOS 0x60 INTERFACE bmf0
60.0 OFF 250
900.0 OFF 500
900.0 LEAVE 225.1.20.1 INTERFACE bmf0
900.0 IGNORE UDP 5001
Here is my ieee80211abgmac.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mac SYSTEM "file:///usr/share/emane/dtd/mac.dtd">
<mac name="IEEE 802.11 MAC" library="ieee80211abgmaclayer">
<param name="mode" value="0"/>
<param name="enablepromiscuousmode" value="off"/>
<param name="distance" value="1000"/>
<param name="unicastrate" value="4"/>
<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="on"/>
<param name="retrylimit0" value="2"/>
<param name="retrylimit1" value="2"/>
<param name="retrylimit2" value="2"/>
<param name="retrylimit3" value="2"/>
<param name="queuesize0" value="255"/>
<param name="queuesize1" value="255"/>
<param name="queuesize2" value="255"/>
<param name="queuesize3" value="255"/>
<param name="wmmenable" value="yes"/>
</mac>
When I used tcpdump -i bmf0 -nn -v src 10.100.0.1, I saw the TOS values being set (0x20, 0x40, 0x60). However, when I use emanesh to look at the tables and stats, I only see packets accepted/dropped, for example, in queues 0 and 3, and not 1 and 2.
nem 1 mac BroadcastPacketAcceptTable0
| NEM | Num Pkts Tx | Num Bytes Tx | Num Pkts Rx | Num Bytes Rx |
| 1 | 31 | 24535 | 0 | 0 |
| 2 | 0 | 0 | 77 | 21390 |
| 3 | 0 | 0 | 75 | 20822 |
| 4 | 0 | 0 | 74 | 20720 |
| 5 | 0 | 0 | 75 | 20894 |
| 6 | 0 | 0 | 73 | 20374 |
| 7 | 0 | 0 | 75 | 20902 |
| 8 | 0 | 0 | 76 | 21152 |
| 9 | 0 | 0 | 75 | 20858 |
| 10 | 0 | 0 | 75 | 20962 |
| 11 | 0 | 0 | 74 | 20640 |
| 12 | 0 | 0 | 75 | 20866 |
| 13 | 0 | 0 | 75 | 20902 |
| 14 | 0 | 0 | 1 | 70 |
| 15 | 0 | 0 | 75 | 20866 |
| 16 | 0 | 0 | 75 | 21118 |
| 17 | 0 | 0 | 74 | 20900 |
| 18 | 0 | 0 | 76 | 21068 |
| 19 | 0 | 0 | 75 | 21042 |
| 20 | 0 | 0 | 76 | 21224 |
nem 1 mac BroadcastPacketAcceptTable1
| NEM | Num Pkts Tx | Num Bytes Tx | Num Pkts Rx | Num Bytes Rx |
nem 1 mac BroadcastPacketAcceptTable2
| NEM | Num Pkts Tx | Num Bytes Tx | Num Pkts Rx | Num Bytes Rx |
nem 1 mac BroadcastPacketAcceptTable3
| NEM | Num Pkts Tx | Num Bytes Tx | Num Pkts Rx | Num Bytes Rx |
| 1 | 114 | 16583 | 0 | 0 |
Could there be some system queueing or EMANE/radio model configurations that I'm missing to use all the different queues?
Thank you so much for your help, I truly appreciate it!