Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(286)

Issue 281230043: Wifi helpers and api refactoring

Can't Edit
Can't Publish+Mail
Start Review
Created:
10 years, 3 months ago by S. Deronne
Modified:
10 years, 2 months ago
Reviewers:
Tom Henderson
CC:
ns-3-reviews_googlegroups.com
Visibility:
Public.

Description

It has been decided to refactor Wi-Fi helpers () as well as aggregation and block ack APIs. See bugs 2116 and 2213. The wifi mac helpers have been reduced to a single helper (non QoS). When the user configure 802.11n or 802.11ac standard, it enables QoS, HT and VHT (if 802.11ac is selected). If the user wants to work with QoS with legacy versions (a/b/g), he needs to manually enableQoS using attributes. Aggregation and block ack APIs have been changed to make them simpler. The result is that aggregation and block ack parameters can now be configured similarly as other MAC layer parameters. Besides, the selection of 802.11n/ac automatically enables MPDU aggregation for AC_BE and AC_VI as mostly observed in the field. Note that 802.11ac default values are identical to 802.11n default values since we lack information about 802.11ac values that are commonly set as default in the field.

Patch Set 1 #

Patch Set 2 : Add missing files #

Total comments: 10

Patch Set 3 : add a new example, fix some issues and deprecate old helpers and apis #

Total comments: 11

Patch Set 4 : updated example #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1281 lines, -877 lines) Patch
M examples/energy/energy-model-example.cc View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M examples/energy/energy-model-with-harvesting-example.cc View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M examples/routing/manet-routing-compare.cc View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M examples/stats/wifi-example-sim.cc View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M examples/tutorial/third.cc View 1 2 1 chunk +2 lines, -3 lines 0 comments Download
M examples/wireless/ht-wifi-network.cc View 1 2 2 chunks +6 lines, -5 lines 0 comments Download
M examples/wireless/mixed-wireless.cc View 1 2 2 chunks +3 lines, -3 lines 0 comments Download
M examples/wireless/multirate.cc View 1 2 4 chunks +5 lines, -5 lines 0 comments Download
M examples/wireless/power-adaptation-distance.cc View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M examples/wireless/power-adaptation-interference.cc View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M examples/wireless/rate-adaptation-distance.cc View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M examples/wireless/simple-ht-hidden-stations.cc View 1 2 4 chunks +10 lines, -22 lines 0 comments Download
M examples/wireless/simple-mpdu-aggregation.cc View 1 2 1 chunk +0 lines, -176 lines 0 comments Download
M examples/wireless/simple-msdu-aggregation.cc View 1 2 1 chunk +0 lines, -164 lines 0 comments Download
M examples/wireless/simple-two-level-aggregation.cc View 1 2 1 chunk +0 lines, -214 lines 0 comments Download
M examples/wireless/vht-wifi-network.cc View 1 2 1 chunk +6 lines, -5 lines 0 comments Download
M examples/wireless/wifi-adhoc.cc View 1 2 4 chunks +5 lines, -5 lines 0 comments Download
A examples/wireless/wifi-aggregation.cc View 1 2 3 1 chunk +307 lines, -0 lines 0 comments Download
M examples/wireless/wifi-ap.cc View 1 2 2 chunks +2 lines, -2 lines 0 comments Download
M examples/wireless/wifi-blockack.cc View 1 2 2 chunks +11 lines, -9 lines 0 comments Download
M examples/wireless/wifi-clear-channel-cmu.cc View 1 2 4 chunks +4 lines, -4 lines 0 comments Download
M examples/wireless/wifi-hidden-terminal.cc View 1 2 1 chunk +1 line, -1 line 0 comments Download
M examples/wireless/wifi-simple-adhoc.cc View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M examples/wireless/wifi-simple-adhoc-grid.cc View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M examples/wireless/wifi-simple-infra.cc View 1 2 1 chunk +3 lines, -3 lines 0 comments Download
M examples/wireless/wifi-simple-interference.cc View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M examples/wireless/wifi-sleep.cc View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M examples/wireless/wifi-timing-attributes.cc View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M examples/wireless/wifi-wired-bridging.cc View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M examples/wireless/wscript View 1 2 2 chunks +2 lines, -8 lines 0 comments Download
M src/aodv/examples/aodv.cc View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M src/aodv/test/aodv-regression.cc View 1 2 3 chunks +3 lines, -3 lines 0 comments Download
M src/aodv/test/bug-772.cc View 1 2 3 chunks +3 lines, -3 lines 0 comments Download
M src/aodv/test/loopback.cc View 1 2 2 chunks +3 lines, -3 lines 0 comments Download
M src/click/examples/nsclick-raw-wlan.cc View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M src/click/examples/nsclick-udp-client-server-wifi.cc View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M src/dsdv/examples/dsdv-manet.cc View 1 2 1 chunk +1 line, -1 line 0 comments Download
M src/dsr/examples/dsr.cc View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M src/energy/examples/basic-energy-model-test.cc View 1 2 2 chunks +3 lines, -3 lines 0 comments Download
M src/energy/examples/rv-battery-model-test.cc View 1 2 3 chunks +5 lines, -5 lines 0 comments Download
M src/flow-monitor/examples/wifi-olsr-flowmon.py View 1 chunk +1 line, -1 line 0 comments Download
M src/mpi/examples/third-distributed.cc View 1 2 1 chunk +2 lines, -3 lines 0 comments Download
M src/netanim/examples/wireless-animation.cc View 1 2 1 chunk +2 lines, -3 lines 0 comments Download
M src/olsr/examples/olsr-hna.cc View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M src/tap-bridge/examples/tap-wifi-dumbbell.cc View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M src/tap-bridge/examples/tap-wifi-virtual-machine.cc View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M src/tap-bridge/examples/tap-wifi-virtual-machine.py View 1 chunk +1 line, -1 line 0 comments Download
M src/test/ns3wifi/wifi-interference-test-suite.cc View 1 2 4 chunks +19 lines, -6 lines 0 comments Download
M src/test/ns3wifi/wifi-msdu-aggregator-test-suite.cc View 1 2 3 chunks +10 lines, -9 lines 0 comments Download
M src/wave/examples/vanet-routing-compare.cc View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M src/wave/helper/wave-mac-helper.h View 1 2 5 chunks +23 lines, -6 lines 0 comments Download
M src/wave/helper/wave-mac-helper.cc View 1 2 4 chunks +18 lines, -6 lines 0 comments Download
M src/wave/test/ocb-test-suite.cc View 1 2 3 chunks +6 lines, -6 lines 0 comments Download
R src/wifi/helper/ht-wifi-mac-helper.h View 1 2 1 chunk +4 lines, -0 lines 0 comments Download
R src/wifi/helper/nqos-wifi-mac-helper.h View 1 2 3 chunks +14 lines, -1 line 0 comments Download
R src/wifi/helper/nqos-wifi-mac-helper.cc View 1 2 2 chunks +7 lines, -1 line 0 comments Download
R src/wifi/helper/qos-wifi-mac-helper.h View 1 2 4 chunks +16 lines, -3 lines 0 comments Download
R src/wifi/helper/qos-wifi-mac-helper.cc View 1 2 6 chunks +44 lines, -21 lines 0 comments Download
R src/wifi/helper/vht-wifi-mac-helper.h View 1 2 1 chunk +4 lines, -0 lines 0 comments Download
M src/wifi/helper/wifi-helper.h View 1 2 4 chunks +9 lines, -22 lines 0 comments Download
M src/wifi/helper/wifi-helper.cc View 1 2 2 chunks +1 line, -4 lines 0 comments Download
A src/wifi/helper/wifi-mac-helper.h View 1 2 1 chunk +121 lines, -0 lines 0 comments Download
A src/wifi/helper/wifi-mac-helper.cc View 1 2 1 chunk +75 lines, -0 lines 0 comments Download
M src/wifi/model/edca-txop-n.h View 4 chunks +6 lines, -1 line 0 comments Download
M src/wifi/model/edca-txop-n.cc View 1 2 12 chunks +29 lines, -25 lines 0 comments Download
M src/wifi/model/mac-low.h View 2 chunks +3 lines, -11 lines 0 comments Download
M src/wifi/model/mac-low.cc View 13 chunks +21 lines, -22 lines 0 comments Download
M src/wifi/model/mpdu-aggregator.h View 1 chunk +3 lines, -0 lines 0 comments Download
M src/wifi/model/mpdu-standard-aggregator.h View 1 chunk +3 lines, -0 lines 0 comments Download
M src/wifi/model/mpdu-standard-aggregator.cc View 1 2 2 chunks +13 lines, -1 line 0 comments Download
M src/wifi/model/msdu-aggregator.h View 1 chunk +4 lines, -0 lines 0 comments Download
M src/wifi/model/msdu-standard-aggregator.h View 1 chunk +3 lines, -0 lines 0 comments Download
M src/wifi/model/msdu-standard-aggregator.cc View 1 2 2 chunks +13 lines, -1 line 0 comments Download
M src/wifi/model/regular-wifi-mac.h View 1 2 1 chunk +34 lines, -0 lines 0 comments Download
M src/wifi/model/regular-wifi-mac.cc View 1 2 9 chunks +323 lines, -10 lines 0 comments Download
M src/wifi/test/wifi-aggregation-test.cc View 5 chunks +14 lines, -19 lines 0 comments Download
M src/wifi/test/wifi-test.cc View 1 2 2 chunks +3 lines, -3 lines 0 comments Download
M src/wifi/wscript View 1 2 5 chunks +5 lines, -2 lines 0 comments Download

Messages

Total messages: 6
Tom Henderson
I think this is an improvement but would like to ask if more could be ...
10 years, 3 months ago (2016-01-07 20:33:24 UTC) #1
S. Deronne
On 2016/01/07 20:33:24, Tom Henderson wrote: > I think this is an improvement but would ...
10 years, 2 months ago (2016-01-17 20:14:59 UTC) #2
S. Deronne
https://codereview.appspot.com/281230043/diff/20001/examples/energy/energy-model-example.cc File examples/energy/energy-model-example.cc (right): https://codereview.appspot.com/281230043/diff/20001/examples/energy/energy-model-example.cc#newcode192 examples/energy/energy-model-example.cc:192: // Add an upper MAC and disable rate control ...
10 years, 2 months ago (2016-01-17 20:15:06 UTC) #3
Tom Henderson
> > Do you mean different networks running at the same time, or 3 cases ...
10 years, 2 months ago (2016-01-20 18:07:17 UTC) #4
S. Deronne
On 2016/01/20 18:07:17, Tom Henderson wrote: > > > > Do you mean different networks ...
10 years, 2 months ago (2016-01-20 20:12:27 UTC) #5
Tom Henderson
10 years, 2 months ago (2016-01-24 20:13:20 UTC) #6
I just have some comments on the new example; otherwise, I think it is ready.

https://codereview.appspot.com/281230043/diff/40001/examples/wireless/wifi-ag...
File examples/wireless/wifi-aggregation.cc (right):

https://codereview.appspot.com/281230043/diff/40001/examples/wireless/wifi-ag...
examples/wireless/wifi-aggregation.cc:31: // Each network countains one access
point and one station. Each station
contains

https://codereview.appspot.com/281230043/diff/40001/examples/wireless/wifi-ag...
examples/wireless/wifi-aggregation.cc:34: // Network topology:
s/Network topology/Network topology (numbers in parentheses are channel numbers)

https://codereview.appspot.com/281230043/diff/40001/examples/wireless/wifi-ag...
examples/wireless/wifi-aggregation.cc:43: // - station B doesn't use aggregation
(both A-MDU and A-MSDU are disabled);
A-MPDU

https://codereview.appspot.com/281230043/diff/40001/examples/wireless/wifi-ag...
examples/wireless/wifi-aggregation.cc:51: // Example: ./waf --run
"wifi-aggregation --distance=10 --enableRts=0 --simulationTime=20"
add also a comment about what the user should expect to see and briefly explain
why the numbers differ.  Include also what people should expect to see if they
increase the distance parameter, and if they enable RTS.

https://codereview.appspot.com/281230043/diff/40001/examples/wireless/wifi-ag...
examples/wireless/wifi-aggregation.cc:68: cmd.AddValue ("distance", "Distance in
meters between the station and the access point", distance);
please add also a pcap option (default false)

https://codereview.appspot.com/281230043/diff/40001/examples/wireless/wifi-ag...
examples/wireless/wifi-aggregation.cc:158: //Disable A-MPDU on STA B
add a comment that we must perform these Config::Set() operations _after_
Install() for values to take effect.

https://codereview.appspot.com/281230043/diff/40001/examples/wireless/wifi-ag...
examples/wireless/wifi-aggregation.cc:159: Config::Set
("/NodeList/5/DeviceList/*/$ns3::WifiNetDevice/Mac/BE_MaxAmpduSize",
UintegerValue (0));
From a documentation perspective, it may be better to add the
"$ns3::RegularWifiMac" to the path as a hint about which class this attribute
appears in.

/NodeList/[i]/DeviceList/[i]/$ns3::WifiNetDevice/Mac/$ns3::RegularWifiMac/BE_MaxAmpduSize

https://codereview.appspot.com/281230043/diff/40001/examples/wireless/wifi-ag...
examples/wireless/wifi-aggregation.cc:163: Config::Set
("/NodeList/6/DeviceList/*/$ns3::WifiNetDevice/Mac/BE_MaxAmsduSize",
UintegerValue (7935));
explain where value of 7935 comes from

https://codereview.appspot.com/281230043/diff/40001/examples/wireless/wifi-ag...
examples/wireless/wifi-aggregation.cc:165: //Enable A-MSDU and change A-MPDU
configuration on STA D (A-MDU + A-MSDU= two-level aggregation)
explain why these two constant values 32768 and 3839

https://codereview.appspot.com/281230043/diff/40001/examples/wireless/wifi-ag...
examples/wireless/wifi-aggregation.cc:168: 
For one of these networks, what about trying to apply the attribute through the
helper?  does the following work?

+  mac.SetType ("ns3::StaWifiMac",
+               "Ssid", SsidValue (ssid),
+               "ActiveProbing", BooleanValue (false),
+               "BE_MaxAmpduSize, UintegerValue (32768));

I wonder in this example program if it would be useful to show people that we
don't have to do everything through Config::Set-- the helpers can also be used.

https://codereview.appspot.com/281230043/diff/40001/examples/wireless/wifi-ag...
examples/wireless/wifi-aggregation.cc:174: //Set position for APs
add comment to reinforce that while we set these positions 10m apart, the
networks do not interact and the only variable that affects performance is STA
distance.
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b