From 4bc502dd5b28f4ce3676b3e53d9edb1ba49e3b63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Deronne?= Date: Fri, 2 Mar 2018 23:46:11 +0100 Subject: [PATCH] wifi: (fixes #2826) Use lowest basic rate for management frames --- RELEASE_NOTES | 3 ++- examples/wireless/examples-to-run.py | 2 +- .../hwmp-proactive-regression-test-0-1.pcap | Bin 7392 -> 7313 bytes .../hwmp-proactive-regression-test-1-1.pcap | Bin 11737 -> 11737 bytes .../hwmp-proactive-regression-test-2-1.pcap | Bin 13308 -> 13278 bytes .../hwmp-proactive-regression-test-3-1.pcap | Bin 11732 -> 11732 bytes .../hwmp-proactive-regression-test-4-1.pcap | Bin 7308 -> 7308 bytes .../hwmp-reactive-regression-test-0-1.pcap | Bin 14503 -> 14113 bytes .../hwmp-reactive-regression-test-1-1.pcap | Bin 21361 -> 21037 bytes .../hwmp-reactive-regression-test-2-1.pcap | Bin 20306 -> 19653 bytes .../hwmp-reactive-regression-test-3-1.pcap | Bin 22690 -> 21247 bytes .../hwmp-reactive-regression-test-4-1.pcap | Bin 22525 -> 18573 bytes .../hwmp-reactive-regression-test-5-1.pcap | Bin 15175 -> 11692 bytes .../hwmp-simplest-regression-test-0-1.pcap | Bin 77576 -> 77576 bytes .../hwmp-simplest-regression-test-1-1.pcap | Bin 80967 -> 80967 bytes src/wifi/doc/source/wifi-design.rst | 8 ++++--- src/wifi/model/wifi-remote-station-manager.cc | 20 +++++++++++++++++- 17 files changed, 27 insertions(+), 6 deletions(-) diff --git a/RELEASE_NOTES b/RELEASE_NOTES index e28d7ce26..7bb0d7c40 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -53,8 +53,9 @@ Bugs fixed - Bug 2813 - wifi: OFDM 10 MHz and 5 MHz PHYs do not have correct subcarrier frequency spacings - Bug 2820 - wifi: segmentation fault when Rrpaa wifi manager is used - Bug 2824 - ICMP opcode fr fragment timeout drop is wrong -- Bug 2828 - OLSR simple P2P example produces wrong results +- Bug 2826 - wifi: Management frames should be sent using the lowest basic rate - Bug 2827 - wifi: Active scanning not working with 802.11n/ac/ax +- Bug 2828 - OLSR simple P2P example produces wrong results - Bug 2831 - wifi: runtime channel width switch has no effect - Bug 2836 - wifi: Missing VHT information in radiotap header when A-MPDU is used - Bug 2838 - wifi: ht-wifi-network crashes with RTS/CTS enabled and frequency set to 2.4GHz diff --git a/examples/wireless/examples-to-run.py b/examples/wireless/examples-to-run.py index db5c1cd80..3eafa360c 100755 --- a/examples/wireless/examples-to-run.py +++ b/examples/wireless/examples-to-run.py @@ -45,7 +45,7 @@ cpp_examples = [ ("he-wifi-network --simulationTime=0.25 --frequency=5 --useRts=0 --minExpectedThroughput=6 --maxExpectedThroughput=754", "True", "True"), ("he-wifi-network --simulationTime=0.3 --frequency=5 --useRts=1 --minExpectedThroughput=6 --maxExpectedThroughput=639", "True", "True"), ("he-wifi-network --simulationTime=0.25 --frequency=2.4 --useRts=0 --minExpectedThroughput=6 --maxExpectedThroughput=238", "True", "True"), - ("he-wifi-network --simulationTime=0.25 --frequency=2.4 --useRts=1 --minExpectedThroughput=6 --maxExpectedThroughput=224", "True", "True"), + ("he-wifi-network --simulationTime=0.3 --frequency=2.4 --useRts=1 --minExpectedThroughput=6 --maxExpectedThroughput=224", "True", "True"), ("simple-ht-hidden-stations --simulationTime=1 --minExpectedThroughput=22 --maxExpectedThroughput=22.5", "True", "True"), ("mixed-network --simulationTime=1", "True", "True"), ("wifi-aggregation --simulationTime=1 --verifyResults=1", "True", "True"), diff --git a/src/mesh/test/dot11s/hwmp-proactive-regression-test-0-1.pcap b/src/mesh/test/dot11s/hwmp-proactive-regression-test-0-1.pcap index 5559072a28ac1a7f9ff10eb058d112354935eb48..93d6c3e2218ad012628422421c3ec263e61b43c8 100644 GIT binary patch delta 44 zcmaE0Ini=Mj|8(^1LNdIHgR?q1_p+GK=yn#`N`6fy38jU87IGEli!>rS;h;M1& diff --git a/src/mesh/test/dot11s/hwmp-proactive-regression-test-2-1.pcap b/src/mesh/test/dot11s/hwmp-proactive-regression-test-2-1.pcap index 21b1ec529c7bb90f107b7ead3fc742c8eb2d68c3..046fe171f0835424e178b7e2642a3afb5ef5048c 100644 GIT binary patch delta 52 zcmey9elLB)F&(B0^^-ShOHPi}W}o~*N0<3QJ>%qsdeTh$8i2wIlZ$nAna(v#(vjJ` IPuGqO0AyViH2?qr delta 68 zcmcbY{wICIF&(BY^^-ShOHPi}W}o~*N0<3XJ>%pF0^;l}3=9mqjX*Z5I2(w)u@R_D VVRERhF4MurNjfr{7wFot0RUOP7Iy#u diff --git a/src/mesh/test/dot11s/hwmp-proactive-regression-test-3-1.pcap b/src/mesh/test/dot11s/hwmp-proactive-regression-test-3-1.pcap index 1ad4dba49b74c4a7d213d6ce35874c68744188dc..c44977a083d0fbb3559066372fc02c0b0e9fbfa0 100644 GIT binary patch delta 47 zcmcZ-eIy>L&y6e*u$0A{zrTfdP>p7?Ym}2a`xBGXw2`0h3WH8%rpZ1R(jOXxBOH!@DPVwc}6CRxS|0LOR=vj6}9 delta 32 ocmeCN?6KUiRDyX+J>%rpZ1R(jOXxE1Yhavg#V)^DOtOp_0Ljq{0RR91 diff --git a/src/mesh/test/dot11s/hwmp-reactive-regression-test-0-1.pcap b/src/mesh/test/dot11s/hwmp-reactive-regression-test-0-1.pcap index 8e1ca74fe3fbe16cb31103ca3aaff93ce37e6f86..521cdaf8bc3014d71e68be4f97dfaca7f17b5efe 100644 GIT binary patch delta 1009 zcmZ9L&rcIU6vyZ7batoOAN&xh>4uVqYNS!NWefFUxR9VJTBJu}YQ#i?Xj{SsLZ~%C zXpDmI9{`O(q6Z}0CB}=EZUL?b5?59-Wrm92Z2eKYU-dGF18yNmgS8_SoX z^!ylLKHSJ$gpd_1Mo+^_d=YI@#<@J!(yK9#rL?zQP*g2!@iHo>MFxgd94dn64+}Aubq=^y3u4v?rt#70i2@ zz1)r^)*p9>bz3Iv57Ybh#TkO3L`a!cuq)953_TqYHm|&H?ZvIuMy@W2LbZ(){xaf_ z!&prBM|=O4E`u|KWP~j%J8v>Ja8|grLIxkl;;aaLyBT?3|J#fcQmrg&ihFp#hIWNp zs~^BrJPxxs8P^+z2dV&(sZeRWD(pSG@qu+`<2mtE=A~LiZ7RoogED?ly(^+=tC#-| zsg>+m%8(Pn7PCZddTTlHRz@g2qqi*;{*E7I^DuW}P~ND)H|UI}3Ek&&R_}4u413*T zPl!B)G(kuN>6gko-zOU$ImQWaPhFtJ=*eEsYXAg@>(nSy+{E{fEnl!$EVPGNGd=Tk zNZzJFJttM0?&7`s{^$QY=iGbV$hpz3 z$zvgPcQ1!7zguXGu|en$?c;ahX{b^el`s)D_S7qOJ`iA(}iq`06VT&Bz&fUe?l>mCj@7O^O{6NPE5!sx`)Ty?OuY1pXG?4sS7Mx;t1<`&Qz z4wiM|)#L1#FXs|EEPFjVeNR1yhhd+$KRaJ;hIFr!|__S9$It#zF2IgJ1lFzg9x%9odImc6?T?FUluA{rM%y!k7s zF1O&XP+y1iT&b-}Q9F#p+(kC6^f00boQ=i#Fx-!M9qp*(L0BmuW|S)12`c4yavc3P za~AlvqgqVzOqilBm*BP&`Lx86EsM|`DTiH&pt7RC(ZuG>+QGA!B=V1QVTqiQpi>_h z3>6zNy~7TRH8!2JBg+)#64F{go8gb<;8?;9bBQu_^}7UfqXF%4zkLHb86*GiAK9Oc z_VcUj`-?v%+=>{AQ-z7hHq6%-4G5pwZua0A+~7+J)Pl*Rc+2O{lSWr*_T-<7itv@} z)MDz5)m|cXy%S9m-XOZdSDk%?mI(f{w*a-u)vM#T2eME}A3+y(CdCh4GDRZQgMoag zD6gKW&L#%4=oFeHcxsahQ=qxl<46t`P*$n5`sICw{G0Sv49kX0p=TaX?^K$9k;ml} Ie4!xz2h_tFMF0Q* diff --git a/src/mesh/test/dot11s/hwmp-reactive-regression-test-1-1.pcap b/src/mesh/test/dot11s/hwmp-reactive-regression-test-1-1.pcap index ebc9ace8b045519f980e1e562811382cfbe11283..da3ef8fb4b44b10662e527a3af09ad1aa039db31 100644 GIT binary patch delta 2000 zcmZuxZA_C_6u$SqydV9fe72NgOS58xsR)G4gb;)jMOrA8AKQWfBKuGvYhYUzV6!l% zK%9VQiHnH|nq`wMB*plPAL=syIJXJOez`1S!VlaB(`Ea=bKaKrty`1(_MUs5d(Lyu zxzBy}1z-N0C(0Y_`D2{zXG|Y!)3DH92rUg|+zAa*bZ z{_^{I6KovvxLfMCxT&*oi;v_CzdrgF#$h=)>c=(sMe**6h+HY@c~_M*CbK$1=#W-~ zaHkVCUe1v|#ktq%-PL4-%S>Z0rQv}I4X!FqJ^g0TFGs}E$3a*T#Sm#O5f49vepdl} z)@~Dh0`hD=izU7DS2$oTgeH%yr#f~znW`^4mBqkp6CtTo(oj5kkeCr}!GmO&O&}z7 z5IEV4%y`~X5c*qPaJ@O-)c%HvH6WJ;C@(JY$Ayib@i3v2W3rt5*S`wYjWL*QsVwZ{ zHa-<#%$HolWm$#`yGvEF=e{*TVz<{5!&nI7UIPf-(*=xOgS8f?^!{Bl0$uPxQ|srG zV5uyXnlUqNBk-G?F|MG2S@dsea`Y^N18rV;QMlJbSZQaG$=7OZG@*yi!g+^J#079q zg+ePu=OC}$rP6fu9D|jxS51gqOlyG^zte8TuF{YE-x0KcTBE}+O*43`x*)eo6?gP5 zTCHj9m(x2~J&iuUeH%A&rn`{I`atn13n~vuQE(m#AH^Mf?Hh0W9$vq z;HB;hdUzFl5Uk~Euo5hF>j$$`g`Yp&QXD4Rd~!lOx!;`%bQD4ANH zkoPCysch0tUi< zs|iiUXwln=m(wHN?Mw$ko!x&?uEnH7gI$ zuR%>`oqUI{zdcH!cnHpP*2;0|VeeQnNN98?DFxA>ClJ8e&-_7d3KB!V29=RIRCI5| z!?$4~Qp@Kd5h-=pw#TwJ6N8AfbYY4%7n_y5aoo(OvO$MB1M&vXyD_B`nuB+`YUM@A zeQhR5Xf6wG(h2oR_x8`G2;D%x2JUE`c*-FXE#=iP6s_e6Sd1d0>RDqllU|dU^ki)z Z#poFNwU&i!5HVt+>+c0(WM9wn{tF1Y-aP;S delta 2076 zcmb7ET})g>6rQNbKTClk3kyrEJ{V%@kBLZ{LaQ-S zjTCFsg3-chG@6*SwW$TucEQF6V+b{-+J_<-^#R*jA6h{Z`H8+X7Cmz>Y%jJkagv># zpKreJJLjI6v#037X&PTwW?g!jk|IJ#5i~buL3LRUO@-~)x58^>6|@+}$|{sg`{B67 z1D%hm?3vR7;su_;DzPD~q|jbJVL23!>&?dS@34!IOSnY2zGn0|RPnc@pVrEjkE-5# zkAAD%|0q2pNF`EK!U>iYh|v`Kx<-f(R|v655viMKTso0Ws-~S0P?Y2z+@xB!t*{Jq zWo?LI07ycS2U~*Vq&~%N70F9OEBXT*_5aUN->`ra7Pp>1*EsD<$P#N%24&#M|LVEV$9(B9n2I8i0+)=C{roY&X8IIrOog0x{5>p)XQWZKMF?jyQ zbt886(Wrppkc6~^%#fZ>5;UpZp9-=A<>l{iKeTO3&yC>_8z+?H%E9ok%xw~>B_u#} zA(WfT^V2pcFZVibmd{XYbHxnZtL}bw-*b>#@sQf447~y2au4jP@C-KPA@X8nq4HNf z6gfOH6V`!{2= zTPiPtMR#vAV!%wo9nH^=D%n$wP*v_pKU9kuo5#+`n1pdS-zXuM^P>oHC#h47Gt@Fv z3$Ip}&>o0aduah&sSeWPKx@`!h=S;SC^WmDA6I6-+GM+%KY(UxrX%B>`DY|)ly&A*su>t|NYX3aC_ujbj3X_g7STk`q1 z^0ccJMijSGtaf41BabWA_Ey8Ts}*hkwiR;fN-)}3otL)5?z$kKRJt$hG#J_uayJeO z$iT;y2W`6~Lxy@`Co;VGFU*~&AA|BmycxD#=F7h#b9Qe}P;UaT8lJPlN z31kv67aP{HV+&$ASfPaVXj76Cpi{UhK`Dy@x?CD8HCW)!%|2aZ6xZ;=Q+(`d{Hl+& z$6zv=gVW!mAwEf`_Uw~U;42tz3i246-qtNYafUs%&s+!6(2<{DyWhtH?8rhlOhrAs z6Cna_HHG*My5QWe^DIJXbC9>O+oV^oM*Cv-DjwZMm<7W1r diff --git a/src/mesh/test/dot11s/hwmp-reactive-regression-test-2-1.pcap b/src/mesh/test/dot11s/hwmp-reactive-regression-test-2-1.pcap index 468991eac1a98881489b7d802bc08a8d44b98056..124e2856b657a2c4d87f5ccb2dcb732f4f0de85d 100644 GIT binary patch delta 1948 zcmZuxT}&KR6uv(@GrKIa3j#a)!!ipBiBe^0N%;v9kn&U5El}%=ArxY3tF=PGJ_unsB%>#IvUe&=TWPm4i+s!-a6Gauhts#9IvTk9m9}($PWuO4%gB!C1r$=GPqw7fS+o@t{WrUE1My? z0=eNLS`Yu!=LZ`1u2EM<-5MQqoIE;o9C^fn|G9EF707|8qQfiIyV%X$(D!f-3}^}p zWLNgsEWSGIgoaj=c0ymPPZi|B5%fzjd~L)DeI7Gh&%E5qa9ZOEags`rNv8TspmSi} zqfiG>cd^pRX5VN6YWktS!C=pvkxB-w2)1>Gbt{!lVeIDArp(Wf?77$hq)5lm~k`NW5nMNs`v7S^KE7M+LxOFxDhAEYbrb4#%@!-8MLU^Qm=T#;sb!9+p6 zIZxnro5@Dy(Sz4eHL<*o%Zs&!{62VrK%d{#=9w4Mx}n!FyqVZx;wP|wqJJ#g!j@hn zkZd>Ef()l;ra)hzV;j^nj=`(_5Y5uqG=qZJBQnp+VtFekUBT~sKSaD5>R);+E>7L4 z&fnAw=Iq>w_|;mX5I1IeU}4v>&4)X<%7-U5@mxuo70Wu_tU%ZX3HK%I4raT zeeSzydc?u6p0$P|i`!;dRN5LN0U4A-r-{!^Yv|y1tDfZ~nOl=1Ja}9RlX9QxO0}Sd z<;Das_sAw!Aqvf^FXD1UP18l?EhCmMgM{cXel3K!Y=J~b z%$SD2j6iq(QX>J4;vh%?A!bGyDhMXRAc{&vXB1=_wZs1wjh=g7+qE0=lJ{PF&hK~5 z@0@$jedk_LuI^W24Yk_&J%lVGct_7V;jvm59o-8B&4tj-)j_|B(rC2A1H-lDbRwE= ze{K+(YCSN|?*dOXVn{chXczSH1ijMDYnlx@bI+uo z{~vnKA(35AQccA(saH|<-7+`4!(nB%U3TQBp=AA+xYHLg>Q}G@cx4N{qJ%f(UwmZL z|JM+Q=n|K<`fxJDaZ4%$Es>m5h^0w+86o~Y%;8|YOB*vOyN0-S zl#|C1DDGV^)k_ND@|7i@Y6OPMiWL>UF00_8@wbk0_|flTz3+0ke}S$-J%2rSc?6dey93AbU#^mUT5>24wc$H4L zyrhct|B?k~i*?smHPZFXod(yX6#! zG{&|aHHdxlR9So=tiiv2UGKgZ=TaDxIV67lat&S!=$?DxPkf?@yw4B0Vdk&6 zOBh^D#EgH27~SFQS%YE1h%?Sgp-9Z-gEt|%tPno5Sd`dc(8h&r{;ez+Ytg3+lhX~? zaC>ARuHBwy_+WgRVd&SCp#JFQBF=Ic8aSjA~sQgkp2y22}hTtPfVvQ3`v5 zv#q=fO;ZF8o1472MPFUJ36=)!w&`vx>+(}G zHdp0h-Y;AyurW`EK&!>7k}Oi20)8Wa4j5@S;a8{>^M;OW5<(phZ$hCJPh?0#RypjU zb0}eOoO*I|QenROE+gMlH)K8~4nNe}%tFD|8_7KE3v`|dmRoaB@syB9zt4y;`3HyJ zm+7j94S&=F1#Mn!;!jQ*F;XKm+nunktrYU@W?7vQ7YB-66v5Wv?~M+R!eC{yy@&+1 zs5BP~7MGCm54tDXT&!$@!#=9hW?6_OHwCzY4guJDheMvt0X{3IRtA?GC263Y=u9Mp zp4L(n*%j#(o7QZ;jBVrK3RmNq6$!g$3D4_PlR2p8ZbyF5W~UR iQLXl|x|XQSQ$3KulX*JX_?J;ZDKf7{H*bliWBvnE#`hBd diff --git a/src/mesh/test/dot11s/hwmp-reactive-regression-test-3-1.pcap b/src/mesh/test/dot11s/hwmp-reactive-regression-test-3-1.pcap index 8b392a9492c263f4d60561617b6a24ec4e83ea38..8a9e53ca64beb1503ad82e73523ccec41b411afa 100644 GIT binary patch delta 1234 zcmZ`&T}TvB6u$S)j^mDPZZ5iO{>+S~mZ+P%W~3>GyRK--s<{$UZIs%Nl@>y1>e>&4 z#pZU3D2O!ZMS9S;UdkV&z?TdRq^A{x%7?Hbkb1CtXWVVonwOb#&i8Z9xpSY5;nnAO zbflb=`=KM#1U@q_=nz74egt>S7LXljWYG^NoXOnxy9jFQEYR&J#wmd_3d}ol$eY1+ zwEck)O#p{82_FQnGljeeK%cXil-vtpVb0kAA6#kJ2P-ZYiR*#`mB;ZQ3|HE~U6aO_ zkzZCPjFAMLD3ljMpe7!^#-{N@`0+k9oxl@E>1TXNcfR@ZY1%DfEtlrQHo6<+P?d z1umMR3&Qw}tE#*)No!-OM{R?Wh?js8CvS-fLqGPy*ftY1{j0Xvw@#+b7xGSRkMxeA z-h0D>qFGN*R^msAC|9txLy236FLG|&aCM8GF46)QbA((UG2k1?h|bO)UK?Bs)Ty;k zw$Ucan#?vsuv({|ZqXwv%~=B-iP8j@U;wt zr8QH8M25U&Lg*oV<0w@q+zG3#s8kD#*9wKR)Q-|g>Sp@tf9O}HnX?6?Tw%|kM(0vC z(_85X8{JtOOAo+ZC-Xs)y>KYBR$K&7XD7=9`sx$Oj|`CO<+TXUgH*4CO7F5FO61kf z$mr3o$f!3vGMdSwM=oOo!G`T*(hB1ZYXN=<{SAs%z)#?H=$qWP{RI*Fn}->sydWGT z5tAMkJd)1HRUHG_lZA&N=#hDuJ8L}(iYJ2;PpSZZH#e|+ijJ#93EB=Atc)9JZevM- zCB<`^mYbU?0(WB;{-SDmxuxIqvNTeyaRyL0@%?pGiCx#FpDM`5Wmnx+l~_`ItCuVbxEtJ_73h&imiwL6v>zp_kDWwJWrGr?Vw{Fl zr`fU@p*_(h#%z;Kv#?De(`oj>K!OhkDNCjMwcFT%{5Q0erue&|jr~-KwJ;$RS z5jix4AkpT5?!GSkCLHP8hr1yesNqbRGe3gfXbqfpTe8tR@gfU(E!^Fhg=ZodwWl!@AAKsN zV2m&#yT)Z=Lo&;P5YMH=1;4nLt~iF5`ZTx_Yau_GL(dQ3Y+S=rpvOIMvr(>;k*y?i zY@k>MsEPL^E1VU^s-31^$rYHZ za=`_MN)Q2mwO(N=Z*9JYqp z!@QMW<1jqrf*&KQuCp_L)xo|FVu?{QUU{MGaT~vwqSD6)1ZTIZYK7Zz{uzL&As@*M z3b-n(dh&Mg&lYWBI@x&n(hMl3ljjyo=H1{o`98Sb<`S(K`P?9|arPl92(*4Pp->`R zTjB&Q95U1;-)8UxyPnu+ynQ3H_)O-bn0>=F$w`|t@Xg)^9EQT)4x&>yv(HN^1CZLU z7p*_cR404 z%AJbBocUA{EhXtpFB}>U;)uYd=~vay3DK{IWwNjVvr07o?TbRw`k&@mY9BZ%H2MEZ Z{>zf)ENyOp%!5IEQfSW8!PP9s{R?r-jg0^R diff --git a/src/mesh/test/dot11s/hwmp-reactive-regression-test-4-1.pcap b/src/mesh/test/dot11s/hwmp-reactive-regression-test-4-1.pcap index 9282eed86b11dd3f4b472cccdc6739b8ef977e93..4c4f75ac882fe21ae42d815a92182e581406b097 100644 GIT binary patch delta 1609 zcmZuxUuauZ7{BMc_vR+)Vp@|nH~*G2Qf9Gi`O{=gaa~&1$-tDZNjuQOI-Ewf3d10C z?QkJfs|DAj--`x@sR(;;xb#I~;z;me`r^_Tk&3LM!=f z{C>ahcfNBUTqp09No~1bR4xnnf*QcJelNH#<7&bu7U)tb9l$+tFLW%^B?oSUjN5~f zIJYcd$4~%s@qV&|4?W%ZWxNk6CBAQ~r0wfXc;Q0Xu#c>0EDH%Q>A-5jzv2(cL6SQ% zgu{nb=lh4Y$ZOK8FXdkm=p)fj{ta9g9e8`dMhf`jKrd`)3x}<2p*PtJmoDIOi^^2t zx#W3L!mVT!Dq%czA}Cc!C5dF%)g{A`q217*M6hggU@dM#(?Fm2MZ}D^Y4eXqvEg>$ zC9h4X5j#*B_^sr!%Yubz;-Wr}nz1qJVw~_tl%tGEHd4pP!KcJ4v7IEL_GMUZ!pj`ed=TnmMy6j{8hi6w)hyTukMo4s2CYw#$p`&=GVn3kCTTetW! zuC}XKeOj{kau(qLWjcVTRCk~bHnLzB2&WcgO#%y;%Y8Yz%YlE#EqHz;M8>f)vR`J2 zc3jVNJDbEtiai1eP&c&4D&b$rfH?b=6`R9>M3aKk0@$l7poQ-^1mPk5B__UWhm-x$ zCa7DyvGE*hs1xqehNR$8ed97d@b$9GAh-5SGJ?*FSpz)<8|k#LJ3!j;r!kMX zr^|wku~u~75Z!UBYOV-Dc8L73ns6=SA!hkcZof-+~i>P%bCh5@) zN`dDlb{tpR;Tt0%GUsYUIdhuJx%r}AjzR%iJ}iux>j3F)1!!;PQc z_1M^r8NKm delta 3826 zcmbVPYfKbZ6uxt3W@mTH%IZ>f7Z!Grh_wZImNoXbI<@b||;Z%c;h(jh{U2zy|==!8!)qUo(e(3$0;xh>$!u))6>FVMjj_QnRI zREGXVlK5K-fw6E0cr%w#>N_0mfiE)?=^P(7^ZGP13oOWrrepXvU`lr%W?wz9H!E7$ z4;@)Cbp1-G^f)0VUXd&4gVG!rDYQozTC(p8JEXVYtSV>9h{T?KV3i}FRI&(lFkqi= zz;_Fa;Z>6ZCDCiea8tCwEYSe{lA_ena7u^~Zbn8gDAEgSKtn{W5Du0KcSE8?#7qQL;HgtcY9vL3q!1bM7c5jz*VPjWB!kPx2$lS3oJa-n3Y+&C zJu!MTB_dfAK;LEv_8SWlq~y#K%HYsaS437(=(h1cfzM)tlV%Gg6!yp-hatcq-7%6J zw!&wy5h@dGqDci=CP8QJOp1yhMp5oqZ?GzZ&WCgcVXAn5n%JDV44ZN-vklDCN$t`8 zNz(dz7)H0`r{+-%;asyJg}Gsz>dVnpCX&pwCWAH0>GrS;+8fRe0w4U8sZ$K)OC`{0 z4OBQ&e~D)4t8{uspJsUVq6vEA9jx{lGewI~KaYqpNXUnbVZk&VWxEP$jMRh4-Xp5$ z5?Z@6QrH&ERB}x5vBHuH2Y&B3IMEjr zTz-F$Kr3}qFHf8>1z{Xli_M5fm*W)HdLA=es{p0uSRKyJThw!b{cl&XzT%NPgzodJ z(H}~GfVtV}tPZcsPBS$QOIjUnH%BF_^+Bz2#Eh{XV`Uhl$A^ppap2!nzk~;81({|;lV2pBQSgo484KQVWhSQl{M1}k;ExP9yEMk-Mv0}@6cBPJRz=?gt*+}= zFMg|Eh2IETeWzQ|b&)XOwBhA4sRO%;i*-3ZWVKkT3*+Phb7nk}H$N^>cZZOB>Cn4t z;HJwFg;n10)oOh&N5elOOi)=6CtiMiEmqIx>8>?;2-ZlgWAxL%92+^t;9VPv(W>yE zaF1+Kd7K+VF>Q%3R_u`mX;dF{<~t${!lqCNs>!#wv2P)enSJUxQ}s?SlwQ&x_GxrzaK(07xU;_`)X7d+hJuGT6vyYinQ`4wTSatt-9NK#_$LE#|M_QA5$(^##U=D$32ta8W}rz$>Om#5 zJoxWHh7st=%NEehlW$E6!sg0d6=u9eYe>x z;>qfNQ+7PbOux zGdXUSo)((pOA@zWX|tX(By$#SD-6MPS`QMbO3D)>uy`v(kI{_qhI$HpGxad;F)(zsGgKBVx9QskB~Ep9iD3-3UQ!df+7m`p*%c^A>DFXhsWafib)W|U56se9 zAQvLEAIMRzQ%m(uJ$R1mQxj9V6BC)!7MzLpu|yt}sVAjg{08*7)Wdga-yRMjRhL3z8+9YX_&1VvhK;n*(gWrO AK>z>% delta 2522 zcmZuyZA_C_6u$SqUu|tgDALxJ_AMzO1mw%PxHw=T+uRRlli?4i#yTLF$d+Qm*l=#e zkKp`3@E8+KTo8yZ88eb>S;7*Ypu92bi(VxD2`_Tjrw4?zwM)m#%NpyglbW z_dL(J_nh;NY@2xd%6%VWC!yQ!R%Jp6oP;c*bPXq2;d3}e%6k^5wB0%H26t-IebO5^iB~mlDvb|oo?(d{mV11xkIyt0aIBUhQ zM(X&UI*9l^mE+Vw4+aPgh&VP>l3YPZP!cvF%KRT(sTX3Sy&-M`=AuQ!7kk;t}+ysJ~4PNZvk8zM!^L$VJ&;!#j0-pBj=K2n-( zxB`#$QW}L&aE*#r_UIT?+I6{}jeQSyf-aXLCzl)uVv3IwNNNG2_;tHca=4H<&O62l zVT+=n*>r+niI;_07AI8+wb*mqp~{VswswtDuAiTu!Zdy<_~4G%2@GHtU4nLfFM&xG zU=eZN+2Xu41PgSy7tuKj=#P2{*}&H}^tXFhABFuEzkLzifD=H76N$FQU{{u|4A4tg zH^KEHH~j%#D5&Ah*HKVy{cB1#HC>dSH*Y$k^Vo#g@Ff4>O@}8b9tEZ1gKuS8hHlLz z4j|6|W8+0c`!q2<$Rph^`TYL&^H?Bp?T}v%_Y{iX6u7n zW~=%366-sY#jfT-mDLGvSsdj9*uXyC>Ecn08Z`{dqJejOJI{jEBr4XJmC6-%x3dwl zZ7#29P4(I)^T5JQJ-Jq>;$N<)LsQ1-#Lg{P-?{HJnsHdfMz1U5>|ghG7-g=NYGg|~ zCeg*9{in zj1Ls@FXck3*pLE8;2CIN?WT*`iS+uDy@vLNwsb<1c133|&%}_Gar~;1YF5eM)siaO z3-OYmZ-ta%G`{!S?l3_BE$30Qd+}5 z-e*f2S)~MXr5=hIU_9A;1@+Ro+5<)!hxesNHK!3_Jw*pGbZ*@NGY$u7swTqH*wlxH z!lHxen3TdOyEJiBD4d4Z%4%pFddjM$oqo13w;~e!Se8<&Vsul%M5Vj&enaioN7EV1 RYWvv4?o&v!yu06w`wt0^IhOzc diff --git a/src/mesh/test/dot11s/hwmp-simplest-regression-test-0-1.pcap b/src/mesh/test/dot11s/hwmp-simplest-regression-test-0-1.pcap index c7ffa5b10a413b3f6a84cd49da4ef723bd8e4f7c..b4cfafddfe3fcb2ed1cb45e55df5c5e2625f2b2f 100644 GIT binary patch delta 214 zcmeCU$I@|+WrNt^iDe>_wGQhtdQM-!%P7gl&cML%&wFy=JcY^A4=-Ti^O=5-hfxA7 ze8*>U;CzM2>5dOr^=8APy{RB0rrYZ<%J419;9$@N>IdNq9SHHnOzh%(S=hxF U;1D;<#;%?z2VHzS&^;%a0LxrNaR2}S diff --git a/src/mesh/test/dot11s/hwmp-simplest-regression-test-1-1.pcap b/src/mesh/test/dot11s/hwmp-simplest-regression-test-1-1.pcap index 7c5e35d886d6e7c980a591264ec5541a54a59eaf..6cc783fcefeed0422724ed6dcbbaee23c9b81bac 100644 GIT binary patch delta 84 zcmX^9gXQ=SmJJ+-IeERA80;As80;q&N>0`~tjj1neE~0{BpW+W?40-H!g&glrypLx mq~$aHAP=JiSeVCma^QT0$>m2DFv<8%U&zZSvDxsbSUCV$iW&z1 delta 91 zcmX^9gXQ=SmJJ+-`3`z9G1xOOfboTf$qx?-Pu4uF$8^za`a)ht2{v}1RFU`O!g&gl lrypLxbk2MFK^~~^2A|1+^A#qSA6dY3zz3{)v*A&(asa({AIJaz diff --git a/src/wifi/doc/source/wifi-design.rst b/src/wifi/doc/source/wifi-design.rst index 85ed7401f..dcabb3497 100644 --- a/src/wifi/doc/source/wifi-design.rst +++ b/src/wifi/doc/source/wifi-design.rst @@ -176,15 +176,17 @@ The following details pertain to the physical layer and channel models: * PLCP preamble reception is not modeled * PHY_RXSTART is not supported * The current implementation assumes that secondary channels are always higher than primary channels +* Cases where RTS/CTS and ACK are transmitted using HT/VHT/HE formats are not supported At the MAC layer, most of the main functions found in deployed Wi-Fi equipment for 802.11a/b/e/g/n/ac/ax are implemented, but there are scattered instances -where some limitations in the models exist.Support for 802.11n and ac is evolving. -Some additional details are as follows: +where some limitations in the models exist. Support for 802.11n and ac is evolving. + +Some implementation choices that are not imposed by the standard are listed below: * BSSBasicRateSet for 802.11b has been assumed to be 1-2 Mbit/s * BSSBasicRateSet for 802.11a/g has been assumed to be 6-12-24 Mbit/s -* cases where RTS/CTS and ACK are transmitted using HT/VHT/HE formats are not supported +* The wifi manager always selects the lowest basic rate for management frames. Design Details ************** diff --git a/src/wifi/model/wifi-remote-station-manager.cc b/src/wifi/model/wifi-remote-station-manager.cc index df93b7490..41298edff 100644 --- a/src/wifi/model/wifi-remote-station-manager.cc +++ b/src/wifi/model/wifi-remote-station-manager.cc @@ -859,7 +859,25 @@ WifiRemoteStationManager::GetDataTxVector (Mac48Address address, const WifiMacHe (void) found; return datatag.GetDataTxVector (); } - return DoGetDataTxVector (Lookup (address, header)); + WifiTxVector txVector = DoGetDataTxVector (Lookup (address, header)); + if (header->IsMgt ()) + { + //Use the lowest basic rate for management frames + WifiMode mgtMode; + if (GetNBasicModes () > 0) + { + mgtMode = GetBasicMode (0); + } + else + { + mgtMode = GetDefaultMode (); + } + txVector.SetMode (mgtMode); + txVector.SetPreambleType (GetPreambleForTransmission (mgtMode, address)); + txVector.SetChannelWidth (GetChannelWidthForTransmission (mgtMode, m_wifiPhy->GetChannelWidth ())); + txVector.SetGuardInterval (ConvertGuardIntervalToNanoSeconds (mgtMode, m_wifiPhy->GetShortGuardInterval (), m_wifiPhy->GetGuardInterval ())); + } + return txVector; } WifiTxVector