Commit Graph

14615 Commits

Author SHA1 Message Date
Stefano Avallone
0b7feec983 wifi: Suspend/resume medium access on EMLSR clients when using another EMLSR link
Backoff counter is suspended/resumed accordingly.
2023-09-09 21:15:44 +00:00
Stefano Avallone
1b18f743e1 wifi: AP continues TXOP if missing response from EMLSR client 2023-09-09 21:15:44 +00:00
Stefano Avallone
463d73aeda wifi: STAs not responding to a MU PPDU need to be protected again in the same TXOP 2023-09-09 21:15:44 +00:00
Stefano Avallone
609773ca22 wifi: Use ForwardMpduDown to send CF-End frame 2023-09-09 21:15:44 +00:00
Stefano Avallone
a702a96c2f wifi: Set switching delay to zero for EMLSR main PHY when needed 2023-09-09 21:15:44 +00:00
Stefano Avallone
b98a80b581 wifi: Drop ICF received on a link blocked because another EMLSR link is being used
Fixes issues when AP MLD and EMLSR client concurrently send frames to each other.
2023-09-09 21:15:44 +00:00
Stefano Avallone
16e0836234 wifi: AP MLD (un)block links when an EMLSR client starts an UL TXOP 2023-09-09 21:15:44 +00:00
Stefano Avallone
cb94997553 wifi: Main PHY takes over UL TXOP after aux PHY has transmitted RTS 2023-09-09 21:15:44 +00:00
Stefano Avallone
bdc2e95cff wifi: Aux PHY of an EMLSR client sends RTS to initiate an UL TXOP 2023-09-09 21:15:44 +00:00
Stefano Avallone
c0e199f103 wifi: (Un)block other EMLSR links when an UL TXOP starts/ends 2023-09-09 21:15:44 +00:00
Stefano Avallone
b2d2d37c14 wifi: Extend EMLSR test to check blocked links at non-AP MLD side 2023-09-09 21:15:44 +00:00
Stefano Avallone
12b3764437 wifi: (Un)block other EMLSR links when a DL TXOP starts/ends 2023-09-09 21:15:44 +00:00
Stefano Avallone
1014ac4f52 wifi: Use higher PHY RX start delay
Otherwise, an EMLSR client may consider the TXOP as ended before the RX START
indication for a HT/VHT/HE/EHT PPDU
2023-09-09 21:15:44 +00:00
Stefano Avallone
1f4b4cbfd6 wifi: Add StaWifiMac methods to block transmissions on a link 2023-09-09 21:15:44 +00:00
Stefano Avallone
e471c20cb4 wifi: AP MLD assumes EMLSR client is back to listening if it is does not receive a response 2023-09-09 21:15:44 +00:00
Stefano Avallone
1399177627 wifi: Store stations expected to respond in WifiTxTimer 2023-09-09 21:15:44 +00:00
Stefano Avallone
6f8b3a039d wifi: Make FEM::RxStartIndication protected and virtual 2023-09-09 21:15:44 +00:00
Sébastien Deronne
3396b046e8 wifi: Extend non-HT duplicate tests to verify channel width in TXVECTOR for non-participating HE STAs 2023-09-09 12:27:28 +00:00
Sébastien Deronne
a6fa6bba4f wifi: Extend non-HT duplicate tests to consider cases where a STA does not respond 2023-09-09 12:27:28 +00:00
Sébastien Deronne
9e3068aac0 wifi: Add checks on channel width reported by TXVECTOR for received PPDUs in non-HT duplicate tests 2023-09-09 12:27:28 +00:00
Sébastien Deronne
aa5958e034 wifi: Fix channel width in reconstructed TXVECTOR when receiving a non-HT duplicate PPDU 2023-09-09 12:27:28 +00:00
Sébastien Deronne
42472134c4 wifi: Cleanup stored TX width from spectrum signal parameters 2023-09-09 12:27:28 +00:00
Sébastien Deronne
3034748f9a wifi: Store transmission width in WifiPpdu 2023-09-09 12:27:28 +00:00
Sébastien Deronne
d46f8857d7 wifi: Fix number of antennas not set when calling one of the WifiPpdu constructor 2023-09-09 12:27:28 +00:00
Sébastien Deronne
1b47675427 wifi: Directly call GetModulationClass in IsNonHtDuplicate 2023-09-09 12:27:28 +00:00
Sébastien Deronne
45583a3583 wifi: Event does not need to store TXVECTOR since it can be retrieved from the PPDU 2023-09-09 12:27:28 +00:00
Sébastien Deronne
cf6bdfc714 wifi: Call correct PHY entity in derived functions 2023-09-09 12:27:28 +00:00
Alberto Gallegos Ramonet
6bd3b08dc6 lr-wpan: Fix incorrect param in AssociateConfirm 2023-09-01 10:46:53 +09:00
Tommaso Pecorella
c27d5e98a0 wifi: fix optimization error in GCC 12.3 2023-08-31 10:24:18 +02:00
Alberto Gallegos Ramonet
bb1e79423a lr-wpan: (fixes #944) Fix for-loop in PrintTxQueue(s) functions 2023-08-28 11:57:33 +09:00
Stefano Avallone
63749b37c5 wifi: Fix condition for aborting RX when starting TX
The end time of the current reception cannot be later than now plus the delay
until idle (the delay until idle is at least the delay until reception ends),
hence the current reception is not aborted when TX starts while receiving a
PPDU payload.
2023-08-26 21:52:59 +00:00
Stefano Avallone
d3cd6bc879 wifi: (fixes #942) Trace expired MPDUs before removing them from the queue
Otherwise, expired MPDUs may be classified as frames that have never been
transmitted, a BlockAckReq to advance the recipient window is not sent
and the throughput goes down to zero.
2023-08-26 21:52:59 +00:00
Stefano Avallone
70a32c145b wifi: Implement a WifiMacQueue-specific Flush() method 2023-08-26 21:52:59 +00:00
Stefano Avallone
0569e6ad89 wifi: Implement WifiMacQueue::Peek() 2023-08-26 21:52:59 +00:00
Stefano Avallone
4cd1c9d4e4 wifi: Optionally specify the link ID for the next queue to serve 2023-08-26 21:52:59 +00:00
Stefano Avallone
61a6921a89 wifi: Limit TXOP bandwidth upon every transmission 2023-08-26 21:52:59 +00:00
Stefano Avallone
2e3dbaea4e wifi: Schedule transmission of MU-BARs instead of enqueuing them 2023-08-26 21:52:59 +00:00
Stefano Avallone
ea3e894d7f wifi: Max value for UL MCS field of User Info fields depends on Trigger Frame variant 2023-08-26 21:52:59 +00:00
Stefano Avallone
a8237503c8 wifi: RR MU scheduler sets the preamble type of DL MU PPDUs earlier 2023-08-26 21:52:59 +00:00
Stefano Avallone
caf9e4547f wifi: Reset current MU PPDU UID when payload reception ends
Improves the fix applied with bdfa4111. Basically, a non-AP STA could
receive a DL MU PPDU including a MU-BAR TF, store the MU PPDU UID when
processing SIG-B, do not respond to the MU-BAR TF (this may happen in
some cases with EMLSR clients) and used the stored MU PPDU UID to schedule
the reception of the OFDMA payload of the TB PPDU sent by other non-AP STAs.
2023-08-26 21:52:59 +00:00
Tommaso Pecorella
0930699cad spectrum: fix doxygen warning in utils script 2023-08-26 12:06:37 -05:00
Eduardo Almeida
992c5b53c4 Fix clang-tidy modernize-type-traits warnings 2023-08-24 01:41:29 +01:00
Eduardo Almeida
62b3adef31 Fix clang-tidy modernize-use-transparent-functors warnings 2023-08-24 01:35:02 +01:00
Stefano Avallone
67c81c737e core: Explicitly instantiate some Callback class and function templates 2023-08-20 13:57:51 +00:00
Stefano Avallone
25377f43ae wifi: Split computation and enqueuing of EML OMN in EMLSR Manager 2023-08-20 13:56:47 +00:00
Stefano Avallone
2210619b1c wifi: Use EmlOmn for EML Operating Mode Notification 2023-08-20 13:56:47 +00:00
Stefano Avallone
eba13bbb59 wifi: Extend EMLSR test to check link switching 2023-08-20 13:56:47 +00:00
Stefano Avallone
ad271fddbd wifi: Add support for limited channel width capabilities of EMLSR aux PHYs 2023-08-20 13:56:47 +00:00
Stefano Avallone
cdabc52473 wifi: EMLSR Manager takes action when notified of received ICF 2023-08-20 13:56:47 +00:00
Stefano Avallone
4cb770cbda wifi: Allow setting UID of previously received PPDU
This is needed, e.g., in case an EMLSR client receives a Trigger frame via an aux PHY and
sends the response via the main PHY.
2023-08-20 13:56:47 +00:00