IEEE 802.11: add HT Greenfield mode set, transmission handling, and control-response rate selection - #1146
Conversation
Mode-set timing previously depended on the entry that happened to sort first by bitrate. This made SIFS, slot time, receive-start delay, and PHY-specific TXOP defaults sensitive to mode ordering instead of an explicit authority. Store and validate a reference mode and operating PHY for every mode set, and make timing and TXOP consumers use those properties directly. Correct the HT and VHT receive-start delay to the standards-defined 24 microseconds at the same boundary so response timeout calculations use the right value. The focused mode-set, response-timeout, and TXOP tests cover reordered modes, invalid references, PHY-family defaults, and ACK/CTS/Block Ack timing.
Management frame decoding and Supported Rates construction did not preserve all of the information needed to describe the BSS legacy operational rates. Derived frame types, basic-rate membership, and rates beyond the primary element could be lost or inferred from mode ordering. Preserve the concrete management frame subtype during deserialization, validate Supported and Extended Supported Rates element lengths and values, and encode the basic-rate bit from an explicit legacy operational set. Derive that set from eligible mode entries and reject mode sets that cannot advertise any representable legacy operational rate. The Supported Rates and mode-set tests cover malformed encodings, primary and extended element splitting, basic membership, legacy timing, and empty-set rejection.
HT capability and operation information needs a typed, shared representation before management signalling and peer negotiation can use it consistently. Inferring dense MCS support or carrying partially modeled elements would make the advertised state diverge from the configured PHY modes. Add typed HT capability and operation values, derive exact MCS, channel-width, mandatory-rate, and short-guard-interval sets from the mode set, and keep the local advertised state in the IEEE 802.11 MIB. Add the corresponding fixed-size management elements, serializers, conversion helpers, and sparse protocol printer output. Focused tests verify capability derivation, sparse MCS sets, width and guard interval handling, byte-level codecs, validation, and diagnostic rendering.
The AP needs transaction identity to follow every locally transmitted fragment until the MAC reports terminal completion. That identity is sender-local control state, however, and must not become observable as received packet metadata at the peer. Introduce a typed management transaction tag, preserve it with the correct packet and region semantics during fragmentation, and remove it at the layered PHY receive boundary. This keeps completion correlation intact locally without leaking implementation metadata across the simulated wireless link. The focused tag and packet-domain tests exercise fragmentation preservation and confirm that the receiver retains protocol metadata but not the local tag.
Association state could be finalized without a reliable terminal result for the corresponding response. Queue eviction, retry exhaustion, RTS failure, or replacement could therefore leak an AID, commit stale HT/channel state, or emit an association notification for a response that was never acknowledged. Reserve AIDs while responses are pending and commit or release the exact transaction snapshot only after the MAC reports success or failure. Propagate synchronous completion through queue-drop callbacks, DCF/HCF retry paths, and the MAC-management bridge. Bind channel and HT Operation state to the pending response, correct marked AID wire encoding, and make authentication and peer replacement use the same ownership rules. Focused unit, module, and queueing tests cover ACK success, DCF/HCF failures, RTS timeout, queue drops, unavailable channels, reassociation snapshots, AID reuse, and exactly-once terminal notification.
Association and reassociation primitives could lose their derived type during dispatch, while detailed STA management lacked one explicit owner for pending targets, request subtypes, timers, and late responses. This made terminal confirmation and teardown behavior depend on incomplete transaction context. Preserve the concrete primitive type and model association and reassociation as correlated transactions. Track the pending AP and subtype, select the matching confirmation, reject stale or mismatched responses, and clear timers and pending state on every success, failure, timeout, restart, and teardown path. The focused primitive-dispatch test covers subtype preservation, correlation, confirmation selection, late responses, timeout, failure, and restart safety.
Stations could not consistently recover HT state from serialized discovery frames or distinguish a genuinely legacy AP from malformed or incompatible HT signalling. Installing peer state from local or incomplete information would make association results and later rate selection unreliable. Advertise typed HT capabilities and HT Operation state in discovery and association exchanges, recover the primary channel from the received wire elements, and classify absent, valid, and invalid HT responses explicitly. Build compatible requests and install negotiated peer state only when the correlated association or reassociation transaction succeeds. Focused unit and module tests cover serialized discovery, legacy fallback, invalid HT classification, ordinary and forced-RTS association, and negotiated peer-state visibility at completion.
Rate selection did not have an authoritative way to restrict individually addressed transmissions to modes supported by both the local mode set and the negotiated peer state. A nominally fast mode could therefore violate the peer's MCS, channel-width, HT Operation, or short-GI constraints. Add a deterministic peer-mode selector that intersects the exact negotiated MCS and bandwidth state with local mode membership and guard-interval support. Wire the MIB into DCF and HCF rate selection, and fall back to the mode set's fastest mandatory legacy operational mode when HT is unavailable or invalid. Focused tests cover sparse MCS sets, 20/40 MHz operation, short GI, local-mode membership, deterministic tie breaking, malformed state, and legacy fallback.
Stop, crash, restart, destruction, disassociation, and deauthentication did not share one cleanup policy. Scan timers, pending transactions, or negotiated peer state could survive a lifecycle transition, and a frame from a pending or unrelated peer could affect the current association. Centralize detailed STA timer, transaction, association, and peer-state cleanup and distinguish current and pending peers using the transmitter identity. Apply matching initialization and lifecycle ownership to simplified STA management, including AP-side peer cleanup, while retaining its reduced state machine. Focused module tests cover initialization, restart, stop, crash, destruction, scan cancellation, same- and different-peer teardown, and discovery interaction.
Disassociation commands for any noncurrent address unconditionally cleared the station's pending association timer. An agent request for an unrelated peer could therefore abort an association or reassociation to a different AP, leaving the eventual target response to be rejected as late. Correlate cancellation with the AP stored in the pending timer context while retaining the existing current-AP teardown and Disassociation frame transmission paths. Extend the focused station-management module test to cover unrelated and matching targets for both association and reassociation, successful continuation, cancellation, transmitted destinations, and late-response rejection.
Update the 37 fingerprint baselines produced by the IEEE 802.11 behavior changes on this branch: 17 example rows, 16 showcase rows, and 4 tutorial rows. Thirty detailed-infrastructure scenarios change because legacy g(mixed) management frames now encode the complete operational rate set correctly. Mandatory rates are marked basic, 24 Mbps is no longer omitted, and optional rates beyond the first eight are carried in Extended Supported Rates. The resulting Beacon, Probe, and Association frame bodies and lengths change the event and packet trajectory. The new association transaction lifecycle can also change later events by exposing AP/STA state only after a successfully acknowledged response. These legacy configurations do not emit the newly modeled HT management elements. Five ad-hoc HCF scenarios change because TXOP selection now classifies g(mixed) through its ERP operating PHY instead of its slowest mandatory DSSS mode. This changes the VI limit from 6.016 ms to 3.008 ms and the VO limit from 3.264 ms to 1.504 ms, affecting aggregation, fragmentation grouping, backoff, and subsequent transmission timing. The wireless TXOP showcase changes because peer-aware HT rate selection falls back to the 24 Mbps legacy operational rate when ad-hoc peers have no negotiated HT state. The 802.11ac Ping1 trajectory changes because the VHT PHY receive-start delay is corrected from 33 us to 24 us, moving response timeout scheduling while leaving its network-layer fingerprint unchanged. All 37 new values exactly match the calculated fingerprints from the full debug fingerprint run. A clean debug build of upstream/master at f07d0e7 reproduced the old checked-in hashes for one representative from each causal group, ruling out stale baselines or build contamination. The pre-existing expected 5 Gbps half-duplex Ethernet ERROR remains unchanged.
Reassociation tunes the station radio to the target access point. When a different-target attempt was refused or timed out, the existing association was intentionally retained, but the radio remained on the rejected target's channel and could no longer exchange traffic with the current AP. Restore assocAP.channel from the shared reassociation failure handler whenever the previous association is still active. Preserve the existing same-target disassociation behavior and avoid retuning after the old association has already been cleared. Extend Ieee80211MgmtStaDiscovery_1 to exercise production reassociation refusal and timeout handling. Assert the target-to-current channel transition, retained association, beacon timer and current peer HT state, target-state cleanup, transaction cleanup, and confirmation result codes. Pin the test seed for reproducibility.
…interval timing Correct HT MCS 32 (1 stream BPSK), MCS 76 (stream 4 16-QAM), and MCS 73 (stream 3 16-QAM) table definitions per IEEE 802.11-2024. Implement data guard-interval queries (getGuardInterval()) and symbol intervals (getSymbolInterval()). Fix HT and VHT signal mode symbol timing to use long symbol duration independently of data GI (Table 19-6 and Table 21-5). Round mixed-format HT and VHT short-GI data airtimes up to 4 us / long-GI symbol boundaries (Eq. 19-90 and Eq. 21-109) while keeping greenfield short-GI data airtimes raw (Eq. 19-92). Extend mode cache keys in Ieee80211HtCompliantModes and Ieee80211VhtCompliantModes with band mode and preamble format to prevent cache key collisions.
…ookup Complete Ieee80211ModeSet entries for "n(mixed-2.4Ghz)" with short and long guard-interval variants via completeHtGuardIntervalVariants. Add guard-interval qualified lookups in findMode and getMode. Add findCompatibleMode for exact PHY parameter matching across mode sets (treating negative guard intervals as wildcards for non-OFDM modes). Ensure strict rate monotonicity in getSlowerMode, getFasterMode, getSlowerMandatoryMode, and getFasterMandatoryMode. Implement getMandatoryModeAtOrBelow to find the highest-bitrate mandatory mode at or below a target rate. Add null check in Ieee80211MgmtBase before updating local HT capabilities. Update Ieee80211HtModeSet_1.test and Ieee80211PeerModeSelection_1.test for short-GI mode set awareness.
…tching Document modeSet precedence over opMode in Ieee80211ConfigureRadioCommand. Implement setModeSetAndMode in Ieee80211Radio and Ieee80211Transmitter to allow atomic reconfiguration of mode set and mode while validating mode membership. Update Ieee80211Transmitter::setModeSet to re-select compatible modes via findCompatibleMode (preserving bitrate, bandwidth, NSS, and GI) or throw when an incompatible transition occurs. In Ieee80211Transmitter::createTransmission, query preamble, header, and data durations directly through IIeee80211Mode methods.
…d add unit tests Add dataFrameGuardInterval parameter to RateSelection and QosRateSelection NED and C++ initialization, allowing explicit guard interval qualification when fixed bitrates are configured. In computeResponseAckFrameMode and computeResponseCtsFrameMode, use modeSet->getMandatoryModeAtOrBelow(mode) for proper mandatory fallback. Add Ieee80211HtGuardInterval_1.test covering HT/VHT guard-interval catalog verification, timing calculations, lookups, transmitter mode-set switching, and rate selection mandatory fallback.
…ID 32-octet bounds
- Physicallayer / MAC mode-set synchronization:
- Emit `modesetChangedSignal` from `Ieee80211Radio::setModeSet` and
`Ieee80211Radio::setModeSetAndMode` to propagate dynamic mode set changes
across the containing NIC.
- Subscribe `Ieee80211Mac` to `modesetChangedSignal` at `INITSTAGE_LINK_LAYER`
and implement `receiveSignal` for `cObject *` to synchronize `modeSet` with
the physical layer.
- Ensures MAC rate selection, rate control adaptors, channel access contention
parameters, and management listeners reflect the current physical mode catalog.
- Management frame serializer SSID bounds enforcement:
- Enforce IEEE Std 802.11-2024 Clause 9.4.2.2 SSID length bounds (0 to 32 octets)
during both serialization and deserialization.
- Encapsulate SSID wire codec logic into `writeSsidElement` and `readSsidElement`
helpers across Probe Request, Association Request, Reassociation Request,
Beacon, and Probe Response frames.
- Reject overlength SSIDs and truncated wire streams with `cRuntimeError`.
- Rate selection documentation:
- Add IEEE Std 802.11-2024 Clause 10.6.5.8 reference comments in `RateSelection`
and `QosRateSelection` explaining why `getHtMcsIndex() < 0` gates HT peer
filtering and non-HT/VHT modes pass through unchanged until VHT MIB state is
supported.
- Testing:
- Add test cases in `Ieee80211SupportedRates_1.test` for valid SSID bounds (0, 1,
32 octets), 33-octet serialization rejection, and truncated stream rejection.
- Add test cases in `Ieee80211HtGuardInterval_1.test` verifying radio mode-set
signal publication and subscriber notification.
…on support Register the n(greenfield-2.4Ghz) mode set and distinguish selectable operational modes (containsMode) from supported PHY capabilities (supportsMode). HT Greenfield profiles now explicitly support non-HT and HT-mixed response modes without making them selectable for data transmissions. Precompute immutable control-response mappings in Ieee80211ModeSet and make the mode-set registry thread-local to ensure thread safety. In the physical layer, validate per-packet transmission requests and reception feasibility against supported mode capabilities. Decompose transmission duration into preamble, header, and data intervals, correctly accounting for HT/VHT SIG field integration in the preamble. Publish modesetChangedSignal upon radio mode set transitions. Add unit test coverage for HT Greenfield compliant modes, duration decomposition, transmitter transition invariants, and ERP mode isolation.
…Greenfield integration Apply IEEE 802.11-2024 control-response rules in DCF and QoS rate selection: ordinary HT ACK and Basic BlockAck responses use mandatory non-HT rates, and CTS responses to HT-carried RTS frames use the HT-mixed format. Translate configured CTS response rates to their corresponding HT-mixed counterparts while preserving MCS, bandwidth, NSS, and guard interval. Enforce mode set initialization invariants by failing fast if RateSelection has no mode set at link-layer initialization, and rebuild configured modes atomically on dynamic mode-set changes via modesetChangedSignal. Add "n(greenfield-2.4Ghz)" to wireless interface and MAC module NEDs, and provide an end-to-end Greenfield ping simulation example in omnetpp-ht-greenfield.ini. Document backward compatibility notes in WHATSNEW regarding 802.11n control-response rate selection. Add comprehensive unit and module test coverage for rate selection, dynamic mode-set rebinding, and HT Greenfield and Mixed runtime exchanges.
…T-mixed for mixed peers - Mode & physical layer introspection: - Add virtual isHtGreenfield() query to IIeee80211Mode and override it in Ieee80211HtMode to identify Greenfield preamble modes. - Track htGreenfieldSupported in Ieee80211ModeSet constructor and expose isHtGreenfieldSupported() accessor. - Expose findHtMixedMode() on Ieee80211ModeSet to resolve the HT-mixed equivalent of any HT mode based on precomputed response tables. - MIB & directional capability negotiation: - Populate localHtCapabilities.greenfield from modeSet->isHtGreenfieldSupported() in Ieee80211Mib::updateLocalHtCapabilities. - Add receiverGreenfield to Ieee80211HtDirectionalCapabilities and populate directional flags during negotiateHtCapabilities(). - Rate selection peer filtering & HT-mixed fallback: - In isCompatibleHtMode(), reject candidate Greenfield modes when the negotiated receiver did not advertise Greenfield support. - In selectPeerCompatibleMode(), dynamically map Greenfield candidate modes to their legal HT-mixed equivalents, allowing Greenfield stations to communicate with mixed-format peers at high throughput before falling back to legacy rates. - Testing: - Update tests/unit/Ieee80211HtCapabilities_1.test with directional Greenfield capability assertions. - Add tests/module/Ieee80211HtHeterogeneousGreenfieldRuntime.test verifying bidirectional unicast data delivery and dynamic HT-mixed frame format selection in a heterogeneous Greenfield/Mixed BSS.
… peer mode selection - Rate selection peer filtering: - In selectPeerCompatibleMode(), use modeSet->supportsMode(mode) instead of modeSet->containsMode(mode) to validate candidate modes. - While containsMode() verifies persistent selectable operating modes (which for Greenfield mode sets only include Greenfield PPDUs), supportsMode() correctly covers supported supplementary modes, such as mandatory HT-mixed CTS responses required by IEEE 802.11-2024 subclauses 10.6.6.1 and 10.6.6.5.7. - This prevents runtime simulation aborts when Greenfield stations respond to HT RTS frames in infrastructure networks. - Testing: - Add assertions in tests/unit/Ieee80211PeerModeSelection_1.test verifying that selectPeerCompatibleMode() accepts HT-mixed CTS modes for n(greenfield-2.4Ghz) mode sets while still rejecting unsupported MCS indices. - Update tests/module/Ieee80211HtHeterogeneousGreenfieldRuntime.test with RTS/CTS enabled (rtsThreshold = 1B) to verify end-to-end HT-mixed CTS generation and transmission by Greenfield stations.
…d HT-mixed fallback - Peer mode selection testing: - Add optional greenfield receiver capability parameter to makePeerState() helper in Ieee80211PeerModeSelection_1.test. - Verify selectPeerCompatibleMode() selects HT-Greenfield modes when communicating with a Greenfield-capable peer. - Verify isCompatibleHtMode() rejects HT-Greenfield modes when the destination station did not advertise Greenfield reception, causing selectPeerCompatibleMode() to fall back to the compatible HT-mixed equivalent mode. - Verify candidate HT-mixed modes remain unaffected regardless of the destination station's Greenfield reception capability.
… GI HT and VHT modes - Physical layer transmission duration decomposition: - In Ieee80211Transmitter::createTransmission(), compute dataDuration using transmissionMode->getDataDuration(B(phyHeader->getLengthField())) instead of raw transmissionMode->getDataMode()->getDuration(...). - For HT mixed format and VHT modes configured with Short Guard Interval (Short GI / 400 ns), standard IEEE 802.11 symbol-boundary rounding (IEEE Std 802.11-2024, Eq. 19-90 and Eq. 21-109) rounds data airtime up to the 4 us symbol boundary. - Comparing duration == preambleDuration + dataDuration now correctly evaluates to true for HT/VHT Short GI transmissions, setting headerDuration to zero (since SIG fields are included in the preamble) and preventing negative dataDuration calculation and runtime simulation errors. - For legacy PHY modes with standalone PLCP headers (OFDM, ERP, DSSS, HR-DSSS), duration == preambleDuration + dataDuration remains false, preserving the header duration allocation. - Testing: - Update assertTransmitterDurationDecomposition() helper in tests/unit/Ieee80211HtGreenfield_1.test to verify duration decomposition with getDataDuration() and accept zero-header HT/VHT modes. - Add test assertions covering VHT Short GI, HT Mixed Short GI, and HT Greenfield Short GI modes with both 0-byte and 64-byte payloads.
Update the fingerprint baseline for /showcases/wireless/txop/ (General config, run 0) from d2b6-a5d1/tplx;3a6f-4c28/~tNl to 1ecd-df80/tplx;86dd-208d/~tNl. The simulation trajectory changed due to corrections in IEEE 802.11 High Throughput (HT) physical layer airtime calculations and transmission duration decomposition: 1. Transmission Duration Decomposition (Ieee80211Transmitter): HT/VHT modes integrate their SIG fields into the PHY preamble duration (preambleMode->getDuration()). Previously, an 8 us header duration was queried from getHeaderMode()->getDuration() and subtracted a second time from data airtime. Ieee80211Transmitter now recognizes that HT header duration is contained in the preamble (headerDuration = 0), preserving the full modeled data duration. 2. HT Mixed Short-GI Airtime Rounding (Ieee80211HtMode): Data airtime for mixed-format HT short-GI transmissions is now rounded up to a 4 us symbol boundary per IEEE Std 802.11-2024 Eq. (19-90), while symbol interval lookups and guard intervals reflect normative timing. 3. Control-Response Rate Selection (RateSelection / QosRateSelection): Mandatory mode lookups and response rate fallback for RTS/CTS and Block Ack exchanges now use compliant mandatory modes at or below the target rate. Because txop is the showcase exercising 802.11n HT data (A-MSDU) and control frames (RTS/CTS, AddbaReq, WlanAck), these physical layer airtime corrections modify the transmission boundaries and subsequent contention scheduling into the intended, standard-compliant trajectory.
|
Asked Devin to write a report on the remaining informational items and the two threads above. Confirmed: ALL OK SummaryThe four informational Bug Catcher items describe correct, intentional behavior. Both unresolved review threads on Part A — Informational items (correct behavior)1. Drop callbacks retain valid packets — verified
if (packetDropperFunction != nullptr) {
while (isOverloaded()) {
auto packet = packetDropperFunction->selectPacket(this);
EV_INFO << "Dropping packet" << EV_FIELD(packet) << EV_ENDL;
removePacket(packet);
take(packet); // reclaim ownership
notifyPacketDropped(packet); // callback sees intact chunks/tags
dropPacket(packet, QUEUE_OVERFLOW); // deletion happens after
}
}Ordering confirmed: 2. Stale association completions ignored — verified
A late callback for a superseded attempt returns 3. Unknown elements remain skippable — verified
while (stream.getRemainingLength() != b(0)) {
if (stream.getRemainingLength() < B(2))
throw cRuntimeError("Malformed IEEE 802.11 management element header");
int elementId = stream.readByte();
int length = stream.readByte();
if (stream.getRemainingLength() < B(length))
throw cRuntimeError("Malformed IEEE 802.11 management element: ...");
if (elementId == SUPPORTED_RATES_ELEMENT_ID) { throw ...; }
else if (elementId == EXTENDED_SUPPORTED_RATES_ELEMENT_ID) { ...gated... }
else if (elementId == HT_CAPABILITIES_ELEMENT_ID) { ...gated... }
else if (elementId == HT_OPERATION_ELEMENT_ID) { ...gated... }
else
for (int i = 0; i < length; i++) // skip unmodeled IE by length
stream.readByte();
}Header/bounds are validated first ( 4. Mode rebinding commits atomically — verified, unqualified
The guarantee depends on lookups throwing (not returning nullptr) on failure — confirmed at head:
The Part B — Review threads on
|
| Item | Verdict | Action |
|---|---|---|
| Info 1 — drop callbacks | Correct behavior | Accept as informational |
| Info 2 — stale completions | Correct behavior | Accept as informational |
| Info 3 — unknown elements | Correct behavior | Accept as informational |
| Info 4 — atomic rebinding | Correct, unqualified | Accept as informational |
| Thread 1 — GF CTS abort | Stale (fixed via supportsMode) |
Resolve |
| Thread 2 — GF negotiation | Stale (fixed end-to-end) | Resolve |
Verification status
All six items verified directly against head commit 2b6333151d02c5168c538c35d8a95f8c891477fa:
- Info 1 —
src/inet/queueing/queue/CompoundPacketQueueBase.cc:60-69:take→notifyPacketDropped→dropPacketordering confirmed. - Info 2 —
src/inet/linklayer/ieee80211/mgmt/Ieee80211MgmtAp.cc:getAssociationResponseDispositiontoken binding (IGNORE/RETAIN/COMPLETE) confirmed. - Info 3 —
src/inet/linklayer/ieee80211/mgmt/Ieee80211MgmtFrameSerializer.cc:343-375: length-based skip of unmodeled element IDs confirmed, with bounds-check and allowed-element gating. - Info 4 —
src/inet/linklayer/ieee80211/mac/rateselection/RateSelection.cc:72-100+ throwinggetModeoverloads at `src/inet/physicallayer/wireless/ieee80211/mode/Ieee80211ModeSet.cc:1000-1
Note
This PR depends on #1145 (
cleanup/fix-ht-gi) and should be merged after it.Summary
This PR adds IEEE 802.11n High Throughput (HT) Greenfield format support, refactors mode set capability vs. operational mode semantics, aligns MAC/QoS control-response rate selection with IEEE 802.11-2024, and adds dynamic mode-set rebinding and runtime verification:
1. Physical Layer HT Greenfield Mode Set & PHY Handling
"n(greenfield-2.4Ghz)"inIeee80211ModeSetwith compliant HT Greenfield MCS 0–76 modes (20 MHz / 40 MHz, long and short guard intervals).containsMode()) from supported PHY capabilities (supportsMode()). HT Greenfield profiles explicitly support legacy non-HT and HT-mixed response frames without making them selectable for data transmissions.Ieee80211ModeSetcontainer thread-local (OPP_THREAD_LOCAL) and precompute immutable control-response lookups.Ieee80211Radio,Ieee80211Receiver, andIeee80211Transmitter.modesetChangedSignalon radio mode-set transitions.2. MAC and QoS Control-Response Rate Selection
RateSelectionandQosRateSelection:getNonHtControlResponseMode).getControlResponseMode).modeSet == nullptrat link-layer initialization.modesetChangedSignal.WHATSNEWregarding 802.11n control-response rate selection.3. Interface Integration, Examples & Tests
"n(greenfield-2.4Ghz)"toIeee80211Interface,ExtUpperIeee80211Interface, andIeee80211MacNED definitions.examples/wireless/lan80211/omnetpp-ht-greenfield.ini.tests/unit/Ieee80211HtGreenfield_1.testandtests/unit/Ieee80211HtGuardInterval_1.test.tests/module/RateSelectionNullModeSetInitialization.testtests/module/QosRateSelectionNullModeSetInitialization.testtests/module/Ieee80211InvalidConfiguredCtsRate.testtests/module/Ieee80211ConfiguredResponseRateSelection.testtests/module/Ieee80211LegacyResponseRateSelection.testtests/module/Ieee80211HtMixedRuntime.testtests/module/Ieee80211HtGreenfieldRuntime.testValidation
make MODE=debug -j$(nproc)inet_run_unit_tests -m debug -f 'Ieee80211Ht.*\.test'(5/5 passed)inet_run_module_tests -m debug -f '(Ieee80211ConfiguredResponseRateSelection|Ieee80211HtGreenfieldRuntime|Ieee80211HtMixedRuntime|Ieee80211InvalidConfiguredCtsRate|Ieee80211LegacyResponseRateSelection|QosRateSelectionNullModeSetInitialization|RateSelectionNullModeSetInitialization)\.test'(7/7 passed)