wifi: Add NeighborReportElement (IE 52), TpcReportElement (IE 35), and RmEnabledCapabilities (IE 70)

Part of #1311 (IEEE 802.11k/v support). This is MR 1 of 3 splitting the original !2784 into reviewable pieces.

Summary

Three foundational information elements that the rest of the 802.11k/v stack depends on. No dependencies on other new code.

NeighborReportElement (IE 52, Section 9.4.2.35)

The biggest piece. Carries BSSID, a 32-bit BSSID Information field with bit-level accessors (AP Reachability, Security, Key Scope, QoS capability flags, etc.), Operating Class, Channel Number, and PHY Type. Supports optional subelements: TSF Information, Condensed Country String, BSS Transition Candidate Preference, BSS Termination Duration, Bearing, Wide Bandwidth Channel, HT/VHT Capabilities and Operation, and Vendor Specific.

TpcReportElement (IE 35, Section 9.4.2.15)

Small 2-byte element with Transmit Power and Link Margin (both signed dBm).

RmEnabledCapabilities (IE 70, Section 9.4.2.43)

5-octet capability bitmap with named accessors for all 40 defined bits per Table 9-218.

All three support Serialize/Deserialize/GetSerializedSize/Print with round-trip tests.

Files

  • src/wifi/model/neighbor-report-element.{h,cc}
  • src/wifi/model/tpc-report-element.{h,cc}
  • src/wifi/model/rm-enabled-capabilities.{h,cc}
  • src/wifi/test/wifi-rrm-info-elems-test.cc (5 test cases)
  • src/wifi/CMakeLists.txt

Tests

./ns3 run "test-runner --suite=wifi-rrm-info-elems"

5 test cases: NeighborReportElementTest, BssidInfoFieldTest, NeighborReportSubelementsTest, TpcReportElementTest, RmEnabledCapabilitiesTest.

Remaining NeighborReportElement subelements

Awaiting maintainer guidance (subelement ID != IE Element ID):

  • SSID (197), HE Capabilities (193), HE Operation (194), HE 6 GHz Band Capabilities (198)

No ns-3 class exists yet:

  • Measurement Report (39), Secondary Channel Offset (62), Measurement Pilot Transmission (66), Multiple BSSID (71), BSS Load (195), HE BSS Load (196)

Merge request reports

Loading