Bug 910

Summary: Change Wi-Fi "AccessClass" to something closer to the standard
Product: ns-3 Reporter: Dean Armstrong <deanarm>
Component: wifiAssignee: Dean Armstrong <deanarm>
Status: RESOLVED FIXED    
Severity: enhancement CC: mk.banchi, nicola, ns-bugs
Priority: P5 Keywords: feature-request
Version: ns-3-dev   
Hardware: All   
OS: All   

Description Dean Armstrong 2010-05-12 17:28:31 UTC
src/devices/wifi/qos-utils.h currently defines an enumeration called "AccessClass", which looks something like this:

enum AccessClass {
  AC_VO = 0,
  AC_VI = 1,
  AC_BE = 2,
  AC_BK = 3,
  AC_BE_NQOS = 4,
  AC_UNDEF
};

I would like to make some (relatively subtle) changes, which aim to support future development of the Wi-Fi models:

 - Rename the type to be in line with IEEE 802.11 terminology. "Access Class" is not a term you'll find in the standard; AC stands for Access Category.

 - Make the enumerated values correspond to the AC Index (ACI) as defined in Table 7-36 of IEEE 802.11-2007 (currently, they don't) so that we don't need another mapping somewhere when we implement features that care about these values.

Specifically, I propose to change the enumeration to something more like this:

enum AcIndex {
  AC_BE = 0,
  AC_BK = 1,
  AC_VI = 2,
  AC_VO = 3,
  AC_BE_NQOS = 4,
  AC_UNDEF
};

...and make sufficient use of sed (s/AccessClass/AcIndex/) such that things build again.

It is worth noting that such a change affects the order in which the EDCAFs for the ACs within a QSTA are initialised (as this happens in order of increasing enumerated value), which means that different random number sequences are used resulting in subtly differences in some (primarily mesh regression) test simulations which therefore require their reference traces to be re-generated.
Comment 1 Nicola Baldo 2010-05-14 13:34:43 UTC
CCing Mirko since he's the author of the Wifi QoS code
Comment 2 Nicola Baldo 2010-05-17 05:00:45 UTC
I've checked with the standard (IEEE 802.11-2007 Section 7.3.2.29 and table 7-36 as you mentioned), and I am OK with committing the proposed changes.
Comment 3 Dean Armstrong 2010-06-03 12:41:09 UTC
Fixed by changesets 6331:eee2eab36748 and 6332:20aa2a218037 on ns-3-dev.