Commit Graph

15268 Commits

Author SHA1 Message Date
Stefano Avallone
2b8cb2b182 wifi: Rework block ack type 2021-01-26 22:32:24 +01:00
Stefano Avallone
cd34fa9290 wifi: Rework MacLowTransmissionParameters members 2021-01-26 22:32:24 +01:00
Tom Henderson
83abb82f0e wave: (fixes #341) Resolve reference cycles 2021-01-25 10:45:50 -08:00
Stefano Avallone
96c1306df9 wifi, wave: Rescan python bindings 2021-01-25 13:33:40 +01:00
Stefano Avallone
0e7366d744 wave: Replace WaveMacLow with WaveFrameExchangeManager 2021-01-24 16:02:37 +01:00
Stefano Avallone
75ee956e65 wifi: Remove WifiRemoteStationManager::UpdateFragmentationThreshold ()
FrameExchangeManager derives the size of a fragment from the previous fragment.
2021-01-24 16:02:37 +01:00
Stefano Avallone
4296ea596f wifi: Add a test for TXOP rules 2021-01-24 16:02:37 +01:00
Stefano Avallone
d9e78429cb wifi: Add support for PIFS recovery 2021-01-24 16:02:34 +01:00
Stefano Avallone
cf13cf328f wifi: Switch to using the QosFrameExchangeManager on QoS stations 2021-01-24 15:58:50 +01:00
Stefano Avallone
ba68ed7d78 wifi: Use HT STAs in block ack test suite
because Basic Block Ack support is incomplete.
2021-01-24 15:58:50 +01:00
Stefano Avallone
d393247888 wifi: Introduce the QoS Frame Exchange Manager 2021-01-24 15:58:12 +01:00
Stefano Avallone
edc9601742 wifi: Add new useful QosTxop methods 2021-01-22 19:30:01 +01:00
Stefano Avallone
1209d58fb7 wifi: Make ChannelAccessManager::GetAccessGrantStart() public
So that FEMs can check whether the channel has been idle in the
last IFS interval.
2021-01-22 19:23:51 +01:00
Stefano Avallone
d7cc8c3321 wifi: APs store buffer status reports carried by QoS frames 2021-01-22 19:23:51 +01:00
Stefano Avallone
b60fb53916 wifi: Add support for setting the Queue Size subfield in the QoS control field 2021-01-22 19:23:51 +01:00
Stefano Avallone
95711be71b wifi: Fix valgrind for wifi-devices-{dcf, edca} tests 2021-01-22 13:00:40 +01:00
Stefano Avallone
5ab9359b80 wifi: Fix valgrind for wifi-mac-queue test 2021-01-21 23:28:55 +01:00
Tommaso Pecorella
3f8a2afdc8 build: partially rev. a455a427 (-Wno-parentheses)
This fixes #339. "-Wno-parentheses" is still needed by GTK+3.22
2021-01-20 20:26:37 +00:00
Stefano Avallone
279b3d5986 wifi,wave,mesh: Rescan python bindings 2021-01-20 12:27:16 +01:00
Stefano Avallone
16c934115f wifi: WifiMacHelper installs protection and ack managers 2021-01-20 12:27:16 +01:00
Stefano Avallone
3b0629d877 wifi: Switch to using the FrameExchangeManager on non-QoS stations 2021-01-20 12:27:16 +01:00
Stefano Avallone
0e414b6c90 wifi: Enable QoS support in the backward compatibility examples
Otherwise, HT stations send QoS data frames that cannot be received
by non-QoS stations. Also, check that the receiver supports HT
before calling GetMaxAmpduSize() with WIFI_MOD_CLASS_HT.
2021-01-20 12:27:16 +01:00
Stefano Avallone
ffd108ae49 wifi: Initialize more MAC header fields 2021-01-20 12:27:16 +01:00
Stefano Avallone
31016d8147 wifi: Add the FrameExchangeManager base class 2021-01-20 12:27:16 +01:00
Stefano Avallone
1b03c3826a wifi: Add a method to MacTxMiddle to reset the current sequence number 2021-01-20 12:27:16 +01:00
Stefano Avallone
29cb1bfe0f wifi: Txop holds a channel access state
This is needed because (Qos)Txop will no longer hold a current MPDU
that can be used to determine whether a frame exchange is ongoing.
2021-01-20 12:27:16 +01:00
Stefano Avallone
172f0f8598 wifi: Make the methods to update CW public
Also, they automatically trace the updated CW value.
RegularWifiMac::{TxOk, TxFailed} are made public, too.
2021-01-20 12:27:16 +01:00
Stefano Avallone
336cbc6a9d wifi: WifiRemoteStationManager makes use of WifiMacQueueItems 2021-01-20 12:27:16 +01:00
Stefano Avallone
c43ac51919 wifi: Add public methods to RegularWifiMac to get (Qos)Txops
(Qos)Txops can be obtained via attributes anyway, so make it easier
to get them.
2021-01-20 12:27:16 +01:00
Stefano Avallone
18e3958347 wifi: Add a default WifiAckManager 2021-01-20 12:27:16 +01:00
Stefano Avallone
8c65f56872 wifi: Add the WifiAckManager base class 2021-01-20 12:27:16 +01:00
Stefano Avallone
4d883466f4 wifi: Add a default WifiProtectionManager 2021-01-20 12:27:16 +01:00
Stefano Avallone
cde282e62a wifi: Move methods from MacLow to WifiRemoteStationManager 2021-01-20 12:27:16 +01:00
Stefano Avallone
82a4dbd630 wifi: Add the WifiProtectionManager base class 2021-01-20 12:27:16 +01:00
Stefano Avallone
87b1e3195e wifi: Add a new WifiTxParameters class 2021-01-20 12:27:16 +01:00
Stefano Avallone
2de357aac2 wifi: Add WifiTxVector::GetModulationClass for convenience
In case the TxVector is MU, we don't need to specify any STAID
because the modulation class is unique. Getting the modulation
class through the WifiMode requires to specify the STAID instead.
2021-01-20 12:27:16 +01:00
Stefano Avallone
2bcf750347 wifi: A queued WifiMacQueueItem stores an iterator to itself
This allows us to dequeue packets only when they are actually
transmitted. For instance, a packet protected by RTS is dequeued
only if the CTS is received. This saves us from reinserting the
packets in the queue if CTS is missed (think of A-MPDUs, multi-TID
A-MPDUs, MU PPDUs, ...)
2021-01-20 12:27:16 +01:00
Stefano Avallone
999b2ac02f network: Queue::DoEnqueue can return an iterator pointing to the inserted item 2021-01-20 12:27:16 +01:00
Stefano Avallone
2eff9a30a9 wifi: Add a class hierarchy for acknowledgment methods 2021-01-20 12:27:16 +01:00
Stefano Avallone
f8ac6f61cf wifi: Add a class hierarchy for protection methods 2021-01-20 12:27:16 +01:00
Stefano Avallone
ab5a1c53f6 wifi: Add the WifiTxTimer to handle TX timers 2021-01-20 12:27:16 +01:00
Tom Henderson
e74c32d529 Update Python unit tests (update API, add copyright) 2021-01-19 18:15:44 -08:00
Tom Henderson
0e07abb93c wave: Add test coverage to vanet-routing-compare.cc 2021-01-19 15:24:49 -08:00
Tom Henderson
726199c94e wave: Fix compilation and runtime issues with vanet-routing-compare.cc 2021-01-19 13:38:49 -08:00
Tom Henderson
720280610d Update links in documentation menubar 2021-01-18 08:23:27 -08:00
Federico Guerra
c5726cd063 uan: (fixes #293) fixed integer truncation in window computation 2021-01-18 08:23:23 -08:00
Alexander Krotov
fe561a82ca wifi: fix iterator invalidation in WifiMacQueue::Insert
If pos == begin(), it may be invalidated before inserting if DROP_OLDEST
policy is used and queue is full.

Add fix for this case and a test for it.
2021-01-18 18:53:27 +03:00
Tom Henderson
3d72079550 sixlowpan: Rescan APIs for Python bindings 2021-01-17 11:43:52 -08:00
Tom Henderson
7d3d471473 Add missing forward declaration 2021-01-17 11:42:50 -08:00
Tommaso Pecorella
217b28e6aa sixlowpan: add context-based (stateful) IPHC compression 2021-01-17 16:54:52 +00:00