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)