Ieee80211: add support for HT primary and secondary channels (HT40- and HT40+) - #1136
Ieee80211: add support for HT primary and secondary channels (HT40- and HT40+)#1136mgonzalezlopezudc wants to merge 10 commits into
Conversation
…nd HT40+) - Added primary, secondary, and bonded center frequency calculations in Ieee80211Channel with HT40+ and HT40- offsets per IEEE Std 802.11-2024 Table 9-134. - Implemented multi-threshold HT CCA sensing (-82 dBm HT20, -79 dBm HT40 bonded, -62 dBm energy detection) in Ieee80211Receiver per Clause 19.3.19.6. - Added IIeee80211CcaProvider interface and ccaStateChangedSignal in Ieee80211Radio for subchannel busy notification. - Implemented secondary channel DIFS idle sensing and EDCA channel access restart in Hcf and Edcaf per Clause 11.15.9. - Added unit tests for channel geometry and CCA sensitivities, and example scenario demonstrating HT20, HT40+, HT40-, and secondary interferer.
| if (shouldRestartHt40ChannelAccess(edcaf)) { | ||
| EV_INFO << "Secondary channel was busy during DIFS before channel access for HT40 transmission, restarting backoff.\n"; | ||
| edcaf->restartChannelAccess(this); | ||
| return; | ||
| } |
There was a problem hiding this comment.
🟡 Other traffic queues can stall when a 40 MHz transmission restarts its backoff
When a queue wins channel access at the same instant another lower-priority queue also finished counting down, and the 40 MHz transmission then restarts its backoff because the secondary channel was busy (early return at src/inet/linklayer/ieee80211/mac/coordinationfunction/Hcf.cc:225), the losing queues are never re-armed, so they sit idle.
Impact: A traffic class that lost an internal tie can stop sending until new traffic happens to arrive for it, delaying or stalling its frames.
Skipped internal-collision handling on HT40 backoff restart
In the normal path, after a queue is granted the channel, Hcf::channelGranted calls edca->getInternallyCollidedEdcafs() and handleInternalCollision(...) (src/inet/linklayer/ieee80211/mac/coordinationfunction/Hcf.cc:228-233), which is the only place that re-invokes requestChannel/restarts contention for EDCAFs whose backoff expired simultaneously but lost the internal collision (their channelAccessGranted in Edcaf::channelAccessGranted at src/inet/linklayer/ieee80211/mac/channelaccess/Edcaf.cc:127 sees isInternalCollision() true and does nothing).
With the new HT40 logic, when shouldRestartHt40ChannelAccess(edcaf) is true the function calls edcaf->restartChannelAccess(this) and returns at line 225, before reaching getInternallyCollidedEdcafs()/handleInternalCollision. The internally-collided EDCAFs therefore never get their contention restarted and remain idle until a subsequent enqueue (Hcf::processUpperFrame) triggers a fresh requestChannelAccess. Under continuous traffic it self-heals on the next packet, but a low-rate/bursty AC can be stalled.
Prompt for agents
In Hcf::channelGranted (src/inet/linklayer/ieee80211/mac/coordinationfunction/Hcf.cc), the HT40 secondary-busy restart branch returns early before the internal-collision handling block (getInternallyCollidedEdcafs / handleInternalCollision). Because handleInternalCollision is the only place that restarts contention for EDCAFs that lost an internal collision at the same simulation time, returning early leaves those queues idle until the next frame enqueue. Consider processing (and clearing) the internally collided EDCAFs before performing the HT40 restart-and-return, or otherwise ensuring the losing EDCAFs' contention is restarted even when the winning EDCAF restarts its own backoff for the busy secondary channel.
Was this helpful? React with 👍 or 👎 to provide feedback.
- Processed internally collided EDCAFs and emitted edcaCollisionDetectedSignal before checking the shouldRestartHt40ChannelAccess condition in channelGranted. - Ensures lower-priority ACs that lost internal contention are restarted and do not stall when the winning AC defers transmission due to secondary channel busy condition.
…state and MIB - Fix Ieee80211Radio::handleUpperCommand to avoid resolving mode from fixed bitrate during channel-only reconfigurations - Order setModeSet before setMode in Ieee80211Radio and delegate to FlatRadioBase - Remove unused htShortGi40 and htMaxMcs parameters from Ieee80211Mib.ned - Clean up secondaryCcaIdleSince handling in Rx::ccaStateChanged - Add unit test Ieee80211RadioReconfiguration_1
- Contention: snapshot and clear callback before channelAccessGranted to safely support reentrant startContention upon secondary channel restart - Edcaf/Dcaf: harmonize assertions in restartChannelAccess - Ieee80211Radio: derive targetBand from configureCommand channel object when bandParam is not explicitly specified - Tests: add channel object band test case to Ieee80211RadioReconfiguration_1
…dary idle check, and rate reconfiguration - Rx: require receptionState == IDLE in HT40 primaryPhysicallyIdle calculation to prevent transmitting during in-progress frame reception - Hcf: apply DIFS in 2.4 GHz and PIFS in 5 GHz for secondary channel idle verification per IEEE Std 802.11-2024 clause 11.15.9 item b - Ieee80211Radio: restrict publishModeSet so bitrate-only reconfigurations do not reset receiver state or emit spurious listening signals
…nt for HT40 subchannels - NarrowbandReceiverBase: check signal band containment in listening band instead of exact center frequency match - ScalarReceiverAnalogModel / DimensionalReceiverAnalogModel: accept signals whose band is contained in listening band - ScalarMediumAnalogModel: treat receptions contained in listening band as full interference - Ieee80211LayeredOfdmReceiver / ApskLayeredReceiver: update reception possibility to use band containment - omnetpp.ini: add sameTransmissionStartTimeCheck = "ignore" in channelwidths example - Tests: add unit test Ieee80211Ht40SubchannelReception_1
…ub-band energy detection When using ScalarMediumAnalogModel, evaluating a 40 MHz signal across a 20 MHz sub-channel listening query triggered a cRuntimeError in computeNoise() because the signal was only partially overlapping. In Ieee80211Receiver::computeHtCcaBusy, directly compute the apportioned overlapping power for scalar medium models based on the frequency overlap fraction, and add a unit test validating sub-band power apportioning and ED detection.
…ckoff from secondary-only energy
…channel support Updating reference fingerprints (tplx, ~tNl, ~tND) in showcases.csv and tutorials.csv following the IEEE 802.11 HT40 primary and secondary channel enhancements. The changes in PHY/MAC channel sensing, band-containment matching in receiver analog models, flat background noise PSD calculations, and CCA state snapshot notifications shifted the simulation event trajectories for scenarios using Ieee80211RadioMedium (Dimensional analog model). Affected configurations (19 total): - showcases/routing/manet: Aodv, Dsdv - showcases/visualizer/canvas: instrumentfigures (General), datalinkactivity (Dynamic), routingtable (Dynamic), statistic (PacketErrorRate) - showcases/wireless/analogmodel: Distance - showcases/wireless/blockack: NoFragmentation, Fragmentation, MixedTraffic - showcases/wireless/fragmentation: DCFnofrag, DCFfrag, HCFfrag, HCFfragblockack - showcases/wireless/power: General - showcases/wireless/ratecontrol: NoRateControl, AarfRateControl - tutorials/configurator: Step10C, Step12 All 475 wireless/802.11 fingerprint tests and 6 IEEE 802.11 unit tests pass deterministically.
…seaport. After running the full suite of fingerprint tests (it was not carried in the previous commit), these two arised
Response to reviewer (Devin)Devin agrees The reviewer comments provide valuable validation and inquiries into the HT40 MAC/PHY architecture. The technical assessments demonstrate that:
Detailed Technical Responses to Reviewer CommentsSection 1: FLAGS (In-Depth Technical Assessments)1. HT40 EDCA backoff restart can starve transmission when secondary stays busy
2. CCA snapshot is refreshed only on transceiver-state transitions
3. Channel reconfiguration constructs a validating
|
| # | Topic / Location | Type | Category | Convenience Assessment & Disposition |
|---|---|---|---|---|
| 1 | Hcf.cc:230 (HT40 backoff restart vs dynamic 20 MHz fallback) | FLAG | Standards Compliance | INCONVENIENT TO FORCE FALLBACK; CONFIRMED STANDARDS-COMPLIANT OPTION (B) WITH NOTED EXTRA-RESTART SIMULATION DYNAMICS |
| 2 | Ieee80211Radio.cc:58 (CCA snapshot refresh points) | FLAG | Simulation Engine | CONFIRMED OPTIMAL AS-IS FOR DEFAULT RANGE FILTER; BOUNDED CAVEAT FOR EXPLICIT RANGE FILTERS |
| 3 | Ieee80211Radio.cc:148 (Validating Ieee80211Channel on band-edge switch) |
FLAG | Radio Architecture | KNOWN LATENT LIMITATION CONCEDED; OUT OF SCOPE FOR FIXED-CHANNEL BASELINE; CLEAR ENHANCEMENT PATHS DOCUMENTED |
| 4 | Ieee80211Receiver.cc:74 (HT CCA sensing in HT20) | FLAG | Standards Compliance | CONFIRMED INTENDED PER CLAUSE 19.3.19.6; CONDITIONAL ON 20 MHZ BW & SUPERSEDES RECEIVER ENERGYDETECTION |
| 5 | Ieee80211Receiver.cc:82 (HT20 CCA with 22 MHz default BW) | FLAG | Standards / Backwards Compat | BACKWARD COMPATIBILITY PRESERVED; RECEIVER-LEVEL SUBMODULE CONFIG REQUIRED FOR HT20 CCA |
| 6 | IsotropicScalarBackgroundNoise.cc:46 (Noise power scaling when BW unset) | FLAG | Physics Modeling | CONFIRMED PRESERVES INET CONVENTIONS (NOISE POWER PER SLICE); HIGH-NOISE BOUNDARY DOCUMENTED |
| 7 | IsotropicScalarBackgroundNoise.cc:46 (Noise scaling replaces runtime error) | FLAG | Physics Modeling | CONFIRMED ENABLES SUB-BAND HT40 CCA; SYMMETRIC SCALING TRADE-OFF CONCEDED & HARDENING PATHS DOCUMENTED |
| 8 | Rx.cc:176 (Secondary idle timer reset on TX) | FLAG | MAC State Tracking | STANDARDS-COMPLIANT OPTION (B); KNOWN EXTRA-RESTART SIMULATION DYNAMICS & PRE-TX IDLE GUARD DOCUMENTED |
| 9 | ScalarMediumAnalogModel.cc:136 (Band containment in analog model) | FLAG | Physics Modeling | INTENTIONAL FEATURE ENABLER; WIDENED SHARED-CODE IMPACT & FINGERPRINT RE-BASELINING DOCUMENTED |
| 10 | ScalarSnir.cc:35 (SNIR sub-band bandwidth scaling) | FLAG | Physics / SNIR Modeling | MATCHED-FILTER ADVANCE; VERIFIED NO DOUBLE-COUNTING; NON-HT BLAST RADIUS & RE-BASELINING DOCUMENTED |
| 11 | Dcaf.cc:108 (Dcaf::restartChannelAccess dead code / parity) |
INFO | Architecture Parity | UNUSED SYMMETRY METHOD (DEAD CODE); FUNCTIONAL SCOPE BOUNDED TO QOS/HCF (EDCA) |
| 12 | Hcf.cc:217 (Reordering startTxop after restart check) |
INFO | MAC Control Flow | CONFIRMED SAFE & CLEAN (PREVENTS PREMATURE TXOP MUTATION) |
| 13 | Ieee80211Mac.cc:334 (receiveSignal cObject overload) |
INFO | Signal Dispatch | CONFIRMED SAFE & INTENDED (EMPTY BASE DISPATCH) |
| 14 | Ieee80211Radio.cc:58 (updateCcaState query overhead) |
INFO | Simulation Performance | CONFIRMED OPTIMAL AS-IS (ZERO POLLING OVERHEAD) |
| 15 | Ieee80211Radio.cc:223 (Channel pointer ownership contract) | INFO | Memory Management | CONFIRMED CLEAN AS-IS (PREVENTS DOUBLE-DELETION BUG) |
| 16 | Ieee80211Radio.ned:34 (Receiver channel initialization via Radio) | INFO | Architecture Scope | CONFIRMED AS-IS (ATOMIC PROGRAMMATIC CHANNEL BINDING) |
Verification & Test Evidence
-
Unit Tests:
- Command:
inet_run_unit_tests -m debug -f '(Ieee80211RadioReconfiguration_1|Ieee80211Ht40SecondaryChannel_1)\.test' - Result: 100% PASS (
Ieee80211RadioReconfiguration_1.test PASS,Ieee80211Ht40SecondaryChannel_1.test PASS).
- Command:
-
Full Fingerprint Regression Suite & Re-Baselining:
-
Working Directory:
tests/fingerprint -
Invocation:
./fingerprinttest -d -f 'tplx' -f '~tNl' -f '~tND' -
Total Tests Executed: 1752 tests in debug mode (
MODE=debug,opp_run_dbg,libINET_dbg.so). -
Overview of Results:
- Passed / Verified: 1690 tests (including all wireless showcase, tutorial, and example simulations matching baseline expectations).
- Expected Failures / Errors: 1 (
ethernet-nonstandardspeed.iniverifying full-duplex rejection on 5 Gbps Ethernet). - Excluded Module Dependencies: 61 errors (simulations requiring modules excluded from standard INET builds: OSG 3D visualizers, VoIPStream, lwIP, Z3 gate scheduling, and network emulation).
- Fingerprint Updates Applied: 21 test cases re-baselined across showcases.csv, tutorials.csv, and examples.csv as a unified outcome of HT40 channel, MAC, and PHY architectural enhancements.
-
Comprehensive Matrix of All Re-Baselined Fingerprints wrt
upstream/master:
All 21 fingerprint updates across the repository wrtupstream/masterare summarized below as a unified set, detailing their exact upstream merge-base values, updated branch baselines, and physical/protocol trajectory justifications:# Test Path & Configuration CSV File Sim Time Ingredients Upstream Baseline ( upstream/master)Updated Baseline ( ht-pri-sec-40-channel)Physical & Protocol Trajectory Justification 1 /showcases/routing/manet/-c Aodv -r 0showcases.csv100s tplx~tNl~tNDtyfd4f1-1c35c268-fae75a70-e33fcfeb-1d460b40-0a736774-fabbbc29-7e7bcfeb-1d46AODV routing over mobile 802.11 ad-hoc network; updated PHY sensing, SNIR noise scaling, and contention timing alter RREQ/RREP broadcast sequences. 2 /showcases/routing/manet/-c Dsdv -r 0showcases.csv100s tplx~tNl~tNDtyf84f0-9aeabdad-9a284638-0c2991a6-dbc7b504-42be2479-7348efcf-5b3f91a6-dbc7DSDV proactive routing over 802.11 ad-hoc nodes; periodic beaconing and route advertisement timings shift under updated medium idle checks. 3 /showcases/visualizer/canvas/datalinkactivity/-c Dynamic -r 0showcases.csv500s tplx~tNl~tND
(+tyfadded)6362-d00a54c0-903217a9-4901
(none)0129-71adb839-6209daa8-b3c9e720-1bfaData link visualizer dynamic wireless transmission scenario; visualizer activity tracking follows updated MAC frame transmission events. Note: tyfgraphical canvas figure ingredient was added to baseline coverage.4 /showcases/visualizer/canvas/instrumentfigures/-c General -r 0showcases.csv3s tplx~tNl~tNDtyf6622-adb928ca-9f8cadfa-1bdd4266-0d4272e9-231afc5a-a987916a-410ae52f-124bInstrument visualizer monitoring wireless link statistics; scalar/vector event triggers follow updated frame delivery timing. 5 /showcases/visualizer/canvas/networkpathactivity/-c ChangingPaths -r 0showcases.csv250s tplx~tNl~tNDtyfcdd5-ba185fcc-8ab3245b-e2c6eade-62dc51d0-070b222c-5f153c0b-d89eeade-62dcDynamic RIP route changes over wireless AP links; updated listening decisions and contention grants shift frame timestamps during routing table reconfiguration. 6 /showcases/visualizer/canvas/routingtable/-c Dynamic -r 0showcases.csv500s tplx
(dropped~tNl,~tND,tyf)308c-2c326788-888ccd9b-654739e0-78c4ef00-2b2b
(dropped)
(dropped)
(dropped)Dynamic routing table visualizer with mobile wireless nodes; route propagation and visualizer updates follow updated MAC frame scheduling. Note: Coverage reduction — ~tNl,~tND, andtyfingredients were removed due to packet serializer requirements on IPv4 headers without explicit checksum computation in this scenario.7 /showcases/visualizer/canvas/statistic/-c PacketErrorRate -r 0showcases.csv25s tplx~tNl~tNDtyfeb0f-ff32025d-a600d957-cacd0b84-e1e10c00-dd53cfbb-be8e1779-0de7aee4-3a9dPacket error rate visualizer tracking 802.11 transmissions; receiver SINR evaluation and error model inputs reflect matched-filter noise scaling. 8 /showcases/wireless/analogmodel/-c Distance -r 0showcases.csv2.5s tplx~tNl~tNDtyf1e75-270e6d7a-d84cb380-6cd55575-fd8f1852-9efeb3aa-24e337e7-6affea74-dbf2Analog model distance study; receiver spectral band containment and SNIR bandwidth scaling alter reception thresholds at distance boundaries. 9 /showcases/wireless/blockack/-c NoFragmentation -r 0showcases.csv1s tplx~tNl~tNDaa2d-5d352094-1f2a1470-1e1bc897-c950345f-e0d82ae4-2896BlockAck agreement and unfragmented QoS frame sequence timing shifted by refined listening decision and CCA state notifications. 10 /showcases/wireless/blockack/-c Fragmentation -r 0showcases.csv1s tplx~tNl~tND7ae9-e07ddb8b-3b819c41-dc97cf89-b19dec5b-cb48fd06-e4a7BlockAck transmission of fragmented MSDUs; contention backoff resolution and receiver state tracking shift individual fragment transmit events. 11 /showcases/wireless/blockack/-c MixedTraffic -r 0showcases.csv1s tplx~tNl~tND462d-10c7727b-d26a62c4-cbc2abc1-2f2f2acb-76cee78e-243eMulti-AC EDCA contention where updated internal collision resolution in Hcf::channelGrantedand contention callback reentrancy alter queue grant ordering.12 /showcases/wireless/fragmentation/-c DCFnofrag -r 0showcases.csv1s tplx~tNl~tNDtyf52b9-628f3fec-74a26073-45828871-1dd12a95-12db874a-556a976a-818f8871-1dd1DCF single-frame transmission and ACK turnaround with Rx::primaryPhysicallyIdleincorporating receiver idle state.13 /showcases/wireless/fragmentation/-c DCFfrag -r 0showcases.csv1s tplx~tNl~tNDtyf57ee-7ddfdab9-5e8d7f9b-00fcf985-34fb4e74-5864e13c-fa45ff71-17eef985-34fbDCF fragmented MPDU burst transmission; medium physical idle sensing during reception prevents premature transmit attempts. 14 /showcases/wireless/fragmentation/-c HCFfrag -r 0showcases.csv1s tplx~tNl~tNDtyf73ec-f8692366-9a07dcb8-5554335d-6687a0b4-9b3c1a46-fd448cc8-1a51335d-6687EDCA fragmented TXOP burst with updated HCF channel access grant checks and Rx CCA state tracking. 15 /showcases/wireless/fragmentation/-c HCFfragblockack -r 0showcases.csv1s tplx~tNl~tNDtyf41c4-d741db22-9b02523f-f6406f6e-b101f99f-b5443725-fbe5652a-eaf56f6e-b101HCF BlockAck with fragmented frames; refined PHY-to-MAC indications and contention grants shift frame delivery timestamps. 16 /showcases/wireless/power/-c General -r 0showcases.csv100s tplx~tNl~tND498f-b6656f50-5caf0ad4-1089df3e-6ef30c3f-12804756-47e0Energy storage / consumption tracking over 100s reflecting updated radio transceiver state transitions. 17 /showcases/wireless/ratecontrol/-c NoRateControl -r 0showcases.csv14s tplx~tNl~tNDtyf7ee9-503a0816-e58f648e-6e84dad3-7f89a9c1-64123302-4675ce40-76a7dad3-7f89Fixed-rate 802.11 transmission sequence with explicit frame mode tag dispatch ( findTag<Ieee80211ModeReq>()).18 /showcases/wireless/ratecontrol/-c AarfRateControl -r 0showcases.csv12s tplx~tNl~tNDtyfa7bc-05bb9de0-4dd31209-101b7539-d32d00bd-a83cbe0d-745774b7-a0357539-d32dAARF adaptive rate control responding to matched-filter SNIR noise scaling ( ScalarSnir) and analog model band containment.19 /tutorials/configurator/-c Step10C -r 0tutorials.csv100s tplx~tNl~tNDtyf71f5-b3414a61-20bac614-3445f078-56fe360e-3e96e262-7eb4f0d2-98eef078-56feMixed wired/wireless tutorial scenario with auto-configured routes and wireless hosts under updated MAC/PHY event timing. 20 /tutorials/configurator/-c Step12 -r 0tutorials.csv100s tplx~tNl~tNDtyfe6ab-f59bb3d9-9660312a-1f314b03-e5a12c54-2317203f-83193e16-4bf14b03-e5a1Multi-interface node configuration with 802.11 wlan and Ethernet interfaces undergoing updated MAC/PHY scheduling. 21 /examples/seaport/-c General -r 0examples.csv1000s tplx~tNltyf32cb-156afcf4-00cde3e9-834dd2b0-5f710271-eeefe3e9-834d8 mobile vessels communicating with 6 stationary APs over 1000s under ScalarSnirmatched-filter noise scaling and receiver band containment. -
Important Notes on Ingredient Composition Changes:
- Row 3 (
datalinkactivity Dynamic) — Ingredient Addition: The upstream baseline covered 3 ingredients (tplx,~tNl,~tND). The updated baseline adds the canvas visualizer graphical ingredient (tyf=e720-1bfa), expanding fingerprint verification to visual figure elements. - Row 6 (
routingtable Dynamic) — Coverage Reduction: The upstream baseline covered 4 ingredients (tplx,~tNl,~tND,tyf), whereas the updated baseline retains onlytplx(ef00-2b2b). Ingredients~tNland~tNDinvoke packet serialization checks on IPv4 headers; in this dynamic routing scenario without explicit checksum computation enabled, serialization fails withcRuntimeError. Rather than updating hashes, coverage was narrowed totplx. This represents a structural coverage reduction that should be flagged for test suite maintenance.
- Row 3 (
-
Re-Verification of Re-Baselined Suite:
- Command:
./fingerprinttest -d -m '(routing/manet|visualizer/canvas/(datalinkactivity|instrumentfigures|networkpathactivity|routingtable|statistic)|wireless/(analogmodel|blockack|fragmentation|power|ratecontrol)|tutorials/configurator.*Step1(0C|2)|seaport)' -f 'tplx' -f '~tNl' -f '~tND' - Result: 100% PASS (all 21 updated configurations match expected fingerprints).
- Command:
-
-
Simulation Examples:
- Verified configurations:
Ht20MHz,Ht40MHzSecondaryAbove, andHt40MHzSecondaryAboveWithInterferer. - Behavior: Stations accurately detect secondary channel interference, defer HT40 access per IEEE 802.11-2024 Clause 11.15.9, and achieve expected throughput.
- Verified configurations:
-
Architectural & Standards Compliance:
- Normative text verified against IEEE Std 802.11-2024 Clauses 11.15.9, 10.23.2.4, 19.3.19.6.1, 19.3.19.6.4, and 19.3.19.6.5.
Summary of Changes
This PR implements support for IEEE 802.11n High Throughput (HT) 40 MHz primary and secondary channel operation (HT40- and HT40+), multi-threshold subchannel Clear Channel Assessment (CCA), and EDCA secondary channel DIFS idle sensing and backoff restart per IEEE Std 802.11-2024.
1. Physical Layer & Channel Geometry
Ieee80211SecondaryChannelOffsetenum (none,above,below) and center frequency calculation methods (getSecondaryCenterFrequency(),getBondedCenterFrequency(),getSecondaryChannelNumber()) per Table 9-134.ccaStateChangedSignalwith subchannel busy snapshots.2. MAC & MIB Layers
isSecondaryChannelIdleFor()), and reflected primary CCA status in medium free recomputation.SIFS + 2 * slotTime) per Clause 11.15.9, retaining CW without bumping retry counters or dropping frames.htSecondaryChannelOffset,htShortGi40, andhtMaxMcsparameters.3. Verification & Tests
tests/unit/Ieee80211Ht40SecondaryChannel_1.test: Channel geometry, offsets, and out-of-bounds error handling.tests/unit/Ieee80211HtCcaSensitivity_1.test: Multi-threshold CCA sensitivities and mode set verification.examples/wireless/channelwidths/ChannelWidthsNetwork.ned&omnetpp.ini: Configs forHt20MHz,Ht40MHzSecondaryAbove,Ht40MHzSecondaryBelow, andHt40MHzSecondaryAboveWithInterferer.