From ced0a2e349785c33ba608cb649ef9f9d568eebc5 Mon Sep 17 00:00:00 2001
From: Stefano Avallone
Date: Fri, 12 Mar 2021 17:43:05 +0100
Subject: [PATCH] doc: Update wifi documentation
---
CHANGES.html | 4 +-
RELEASE_NOTES | 4 +
doc/models/Makefile | 2 +
src/wifi/doc/Makefile | 4 +-
src/wifi/doc/source/figures/FemHierarchy.dia | Bin 0 -> 1392 bytes
.../doc/source/figures/WifiArchitecture.dia | Bin 4134 -> 4232 bytes
src/wifi/doc/source/wifi-design.rst | 130 ++++++++++++------
7 files changed, 99 insertions(+), 45 deletions(-)
create mode 100644 src/wifi/doc/source/figures/FemHierarchy.dia
diff --git a/CHANGES.html b/CHANGES.html
index 928c4514c..117bb38d2 100644
--- a/CHANGES.html
+++ b/CHANGES.html
@@ -56,10 +56,11 @@ us a note on ns-developers mailing list.
- Added FqCobalt queue disc with L4S features and set associative hash.
- Added FqPIE queue disc with L4S mode
+- Added the ability to configure the primary 20 MHz channel for 802.11 devices operating on channels of width greater than 20 MHz.
Changes to existing API:
-
+- The WifiAckPolicySelector class has been replaced by the WifiAckManager class. Correspondingly, the ConstantWifiAckPolicySelector has been replaced by the WifiDefaultAckManager class. A new WifiProtectionManager abstract base class and WifiDefaultProtectionManager concrete class have been added to implement different protection policies.
Changes to build system:
@@ -69,6 +70,7 @@ us a note on ns-developers mailing list.
- The default TCP congestion control has been changed from NewReno to CUBIC.
- The PHY layer of the wifi module has been refactored: the amendment-specific logic has been ported to PhyEntity classes and WifiPpdu classes.
+- The MAC layer of the wifi module has been refactored. The MacLow class has been replaced by a hierarchy of FrameExchangeManager classes, each adding support for the frame exchange sequences introduced by a given amendment.
- The 802.11a-like PHY configuration known as Holland has been removed from the wifi module. It was added in the 2005 timeframe for Wi-Fi rate control research but hasn't been used for quite some time.
- Support for Greenfield mode (aka HT_GF) has been dropped from wifi.
- Some wifi/src/model files were moved to non-ht, ht, vht, he, and rate-control subfolders.
diff --git a/RELEASE_NOTES b/RELEASE_NOTES
index d51d88823..f6f8ab53d 100644
--- a/RELEASE_NOTES
+++ b/RELEASE_NOTES
@@ -28,9 +28,13 @@ New user-visible features
-------------------------
- (sixlowpan) Added support for stateful (i.e., context-based) RFC6282 compression.
- (wifi) The PHY layer has been refactored: the amendment-specific logic has been ported to PhyEntity classes and WifiPpdu classes
+- (wifi) The MAC layer has been refactored. The MacLow class has been replaced by a hierarchy of FrameExchangeManager classes, each adding support for the frame exchange sequences introduced by a given amendment.
- (wifi) Holland PHY configuration has been removed from the model
- (wifi) HT Greenfield (HT_GF) preamble support has been removed from the model
+- (wifi) Added the ability to configure the primary 20 MHz channel for 802.11 devices operating on channels of width greater than 20 MHz
- (wifi) Some wifi/src/model files were moved to the relevant subfolders (non-ht, ht, vht, he, and rate-control)
+- (wifi) Stations perform TXOP recovery if the transmission of a non-initial MPDU in a TXOP fails
+- (wifi) Stations keep track of the TXOP holder and ignore the NAV when they receive an RTS frame from the TXOP holder
- (traffic-control) Added FqCobalt queue disc with L4S features and set associative hash.
- (traffic-control) Added FqPIE queue disc with L4S mode.
diff --git a/doc/models/Makefile b/doc/models/Makefile
index 7b2494ff7..11c682548 100644
--- a/doc/models/Makefile
+++ b/doc/models/Makefile
@@ -139,6 +139,7 @@ SOURCEFIGS = \
$(SRC)/wifi/doc/source/figures/WifiArchitecture.dia \
$(SRC)/wifi/doc/source/figures/PhyEntityHierarchy.dia \
$(SRC)/wifi/doc/source/figures/WifiPpduHierarchy.dia \
+ $(SRC)/wifi/doc/source/figures/FemHierarchy.dia \
$(SRC)/wifi/doc/source/figures/snir.dia \
$(SRC)/wifi/doc/source/figures/clear-channel.eps \
$(SRC)/wifi/doc/source/figures/nist-frame-success-rate.eps \
@@ -358,6 +359,7 @@ IMAGES_EPS = \
$(FIGURES)/WifiArchitecture.eps \
$(FIGURES)/PhyEntityHierarchy.eps \
$(FIGURES)/WifiPpduHierarchy.eps \
+ $(FIGURES)/FemHierarchy.eps \
$(FIGURES)/snir.eps \
$(FIGURES)/WimaxArchitecture.eps \
$(FIGURES)/epc-ctrl-arch.eps \
diff --git a/src/wifi/doc/Makefile b/src/wifi/doc/Makefile
index 310e3c21c..a43ffb2dd 100644
--- a/src/wifi/doc/Makefile
+++ b/src/wifi/doc/Makefile
@@ -12,7 +12,8 @@ IMAGES_DIA = \
$(FIGURES)/snir.dia \
$(FIGURES)/WifiArchitecture.dia \
$(FIGURES)/PhyEntityHierarchy.dia \
- $(FIGURES)/WifiPpduHierarchy.dia
+ $(FIGURES)/WifiPpduHierarchy.dia \
+ $(FIGURES)/FemHierarchy.dia
# specify eps figures from which .png and .pdf figures need to be built
@@ -21,6 +22,7 @@ IMAGES_EPS = \
$(FIGURES)/WifiArchitecture.eps \
$(FIGURES)/PhyEntityHierarchy.eps \
$(FIGURES)/WifiPpduHierarchy.eps \
+ $(FIGURES)/FemHierarchy.eps \
$(FIGURES)/clear-channel.eps \
$(FIGURES)/nist-frame-success-rate.eps \
$(FIGURES)/nist-frame-success-rate-n.eps \
diff --git a/src/wifi/doc/source/figures/FemHierarchy.dia b/src/wifi/doc/source/figures/FemHierarchy.dia
new file mode 100644
index 0000000000000000000000000000000000000000..5ee5fef3d641de9894ac3fab1993996f2f0446c1
GIT binary patch
literal 1392
zcmV-$1&{h4iwFP!000021MOQ~Z=*OAeebV8^tIy{3>ao69ciTP&clpWEA8xSnZL<&i+sAx#8z3YEhqP0H)Jis&du(H$bFXneetKLc#yu5j%-Phm05lEC<~)p9
zG&R5fb@R?QKV4sZ3}f
zlx`*!KYM(yNJM9Xk{|7^p}K;gkLwi`b+^kEPh({wH>-w8i=XWOmQ87uDkBzMUw)-h
zQgK-{tE_zXx2v(OKypb$6tgCl8lR*X3>&y8$S%+FT?B26p2p>PxY>E(lJmle^TNgH
z?TQO2NGzL>GtLuASb-|Vn)b&@=Oj^6Y+tvm{@(9mDfxl+-;pHk(t)D-{}p%a>WxGk
z?q9qWixw{raVQtJj{^-?;e9iZ_xm`FX9?Za`k2X+x!;_|ef{m^4F3GM=4>duwMsuROPm9uQa%j}+c3lUisHzEe4v~-z6{Y*n&r)raFSukJgUn@o
z|5Vx<6F&Qg&Slxz@87-}?~LCmqeAh_zeK7a#N3KTOd}4b<{z*+Wc5xemx>J=W47YY
z6AJ;)wcRTlg1|<8eK?wA(grh|)lr1%4PjA2OC%fkut4%L@;_J(aPu+(5ISx@&;ok2r>n9g6WwPE+%GS$W6jZ$j_uR8I
z+Ccnpf9kMcGnu(fDTqiW;}VLu2JCD4H(YJqVjEZ!LqALBe#Q8ne+
zQaTyLoHM4#K`~j{7?Gzt#)7agBTbcdNv^2QHjU@I*|cxWxg8H%<-=C>VY^BDwH6iC
z1tqs}^i9Ga<_jXEV(QQQaf_Z|NzaxpJ^KLbuI(<|tYGXM#?FY@2c9Z9d8r>LP3Th1
zdBK`V-AOx_lZes1_rO=r_Vh)VdR}Cwy+p#W<6@
z@Uwd3jx6J3qnb%rY8t8Bl$2FG`h_Ou^Pr;#S|z4Ek%#&Z
zeLbvdR?$%*`v9p}I$}$@`-Qf|I{Ol?T{%Nr-g6Q~v2_(C0LZvX00+PL
z>8TxKr*EjUA=%|T)OhA;Jo7a4nI}u<%o7^o%u`27#iyavY$s;eEuex@RT^hG4lXGb
zWxq$jzdWZl22bBmD{&f0btKi-K&p-osk$#ns{V=MR1Ca9Kh>6Dss}Je&Qq8g0IT<&
y`YVc4Yh$Nvr}d3vWYm#SUjw5e9Y%F@8MP?qKfb!YsQfzX`r;>^ft>@zJpcfHCZ}5f
literal 0
HcmV?d00001
diff --git a/src/wifi/doc/source/figures/WifiArchitecture.dia b/src/wifi/doc/source/figures/WifiArchitecture.dia
index e41cd96dadb5ec7b663711812312a0f265b0c86e..f5da3832d8d40f881a70712c70633947a079ab5f 100644
GIT binary patch
literal 4232
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
literal 4134
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
kVdu-<$y@63*CAc8