From 34497e34f1949476e18027805249440b89e56bec Mon Sep 17 00:00:00 2001 From: KeshavKa Date: Thu, 27 May 2021 22:10:59 -0700 Subject: [PATCH 1/4] 4.0.0 Link Flap Error Disable Testplan --- .../LinkFlapErrorDisable.png | Bin 0 -> 10969 bytes ..._4_0_0_Link_Flap_Error_Disable_Testplan.md | 371 ++++++++++++++++++ 2 files changed, 371 insertions(+) create mode 100644 TestPlans/system/Link_Flap_Error_Disable/LinkFlapErrorDisable.png create mode 100644 TestPlans/system/Link_Flap_Error_Disable/SONIC_4_0_0_Link_Flap_Error_Disable_Testplan.md diff --git a/TestPlans/system/Link_Flap_Error_Disable/LinkFlapErrorDisable.png b/TestPlans/system/Link_Flap_Error_Disable/LinkFlapErrorDisable.png new file mode 100644 index 0000000000000000000000000000000000000000..f4d7d10cc56eea902b47bf8faca40b1b3c2a9b9f GIT binary patch literal 10969 zcmeHtXH=9+x8_SYf}#Y;89_lMiDZx@QIRC5h$LxAwtz^E-Qp3N1{xK~8AK2eXi1Xs zK!e!CCT9i7NiuX3rrPs;_ujc_)|y$f*8G?sEUN3R+O=!fuBY~Xs=|#8b!$1Rqu+ek}5B~taPd?SV z?*T#d&E!9dSW$Xz2)gWgLrcTV*Lr1~;c1Se)%>~*F}d8q#2oiV@LJO+n{(tqqwFz&G={GzC#mdUbv9(6? zOU7p;S#Rgxi;Z_;)1ZdTChB%4xcT=QX{PcEiY^bTZ(rLPg1Jve$+sBDkDC=`a#Axv z#(ugOo^Trez$?Mq_YmclRQ(>Ll}cTI_z}jZR;csZX8SYor4A|JYTd$V0jpKMQ{f_0 z+>?7cRiWF$V0khOWV|OnG2h#y{r9UhBj&;S%T#UK6z9y5`K{>l6#DZtM)}(XWI6cK zr=f%&lkU1^n&KVM6ne(}Xn!t#uq2Jzd;=$3&BonI+^&*$~ zBPV3I2PCBLLValhlzAaCa6&@n@HMU%B)skXIF~#Ndv#Wgj||_<*FAokPgcg+!_bV1 zJT$N?u8E78b`H*yv(ILQ?bd!y=oL7=8}E0hh~Ig~9o|-FTB%plw-P;c_uA3y5c|xu zn1cg%s(aJG1c!mVAyZ|L{=V-a)}GYE!7a(=FwO@h88K3reOZQ~gmvv&-%#{$Dto&` z2bpTixbN9E4{*PqzVyk!$Oca*p81ss1Y)?bOX3*KIG7Ig=b#$NlfNS)}?_R zr+j#SG^AWFOYbe~-4VfYvvq^T{m#T%w;4CCaD1GNFv<)YCCF8yVQ~a&pG$x3pU6zjJ3oQZ#cdkWy2nu)eL^bdJcS^dYH=cd{*h%PrYlu8mZPr8#Y8|xbo5tNxQA3 zU8>yjj-)Ks&UO4lTDYeL2vA+#B;#9hNRf0N~cfk!J_ z=Zc|{(|_YI40X9tN(=1bP^ZBnE1Z;8yydeSRc!fgk9I43eMgUcM}64zu>qq^SeN6` zEc18HKNwXhv(=HnhZ3Hyz27oE>Y4mZ0|O2b1Sg0Cl`Wvl11%=A4qY{(iAEnK7y`geH?3g0CUs$0%N*nQGragehVQ&e^B-VE zz5mv7cs&L)C1%n4pMuGE&kDuO6bF|%&$PMf15OI33t&HM*S(NZRlJ|l68P+IOp#wm zRknNdNY^tiLR@y;I5Lj?Ue3Cs;`oX&Cl0|JYVt#4^JEsw>*b~E<|kz* z=DH&4h&d4&A=^a7+jH;Mx!6#eZ%e{NT|+wsv8(->xOPH)$ILCA=83kt*LS=0 zY7#r1NUj9Qos9{|b$#uvIm(ay=zGv%x^|3jz2Dw0r!*bs6t}TXgyDCx zrR1!|+N%$56Dn?(-g1HO8ArN~^Vj&lr*gKdww^uF7f4rUSZZ*{$vrA+U7BWvh3%Y( z_dnxblUtD__Q?erK?5Mp8g6AYz_bUI2EXYX!omZVlP_l}VqZ=4<&vTqI{)nXwDap` z&6rmduBb&!uc~^Ot5l(hAxfvKKeeYJ$MLcI-p}EbJ2yv1{g$4do~)MkCq#}saoOO4 zo)VSb2Paen&K*s+Mz^N=OxzFb7=OubZ62t!{v=t>1zodRT>y?}|0eDUMjCn^lys+p zkeut7d6E4cg8SuB!JV$js3)C7PaXrTaSP$;Y0qU$&qUgg>{S)!x0vS(T%)ooOEIoe z-Apw#t+1b=O*7s_mPwp~$YC2dZ+3kcT9I%O zQpqji7?tG=s38zpSQe^osZ~z7&$_{|YVe1|F5fHP)J&^aKEisWM|dmS8xTny&QBcM z2AwNB9jY~PIpQ;LxzalOx)b^?$>rWZzrObU{+wn?WzEm1>O}rrHvgg1wcRlfT)>wz z+;YwPbLlqLP5zG~II}!D6>~Xm(J(cREJb@>?CD8saeeF@;&eVVYs}vD@e@AY$U~2b zs@>L!^^fi)a3T@Y!KAqm6?_~wG%?ign$KR*N{0KZtPlSQ_voX=F(y*4)D0Yro!eT0 zOQ{%>_R=ulIAOwN)#+_bUXB%&?k;ZrdJSH@DiycY8kZJ?bsK=o!E%Zz45Ufpk+#W|7KNky2JCnkjWi+?s5u5Tj`@DSl`t>LW zltsRFDXV_xuf~xZ(ptNdhz3r<%PU<+%U$h^y&l;3XM&3nB^0ADKnxHLj{<1r`S7Hl{?coC;9os z=+7ru93S$hc-{J<75IzP>$T~oMp6|~-k>ub>>8$r%-UZ2&ZXFNTC?+CMi|y_Rx@<$ zEAD455&qGT$8T*ur=g2N{8$4lRHQ4Rj~2OEgvmml0VBlchKWlvQgSk=_F z8yYT4Ae1J&2*p*V>Z!c^q%{ObvFISwt%Q4$hs|dyK77HU>@9}LS;u}zj~QQ!{83iV z(_1NOGyPdr)pBeHhU;pJW{p>4J>Fy$sgPG(|FXAN4il-^Ra50)j#`S;rs)tteeI1t zFbP~|Xkct0eF^)PaV?w__4wZIvRu#&(kEo5}B`|heVC^6Z?!Aq6F1(r?Uc*2wM=`lE07aK!0h6a`f?Tv%v<_AX%{{rUZR_qx#8ir>MH+rcU!uwOWzth~d-^uY(O$j}cSEwqv&A zO(6thwwrTdI#F@|Wm)jRA;EB78eiJ-+Nb5g(fKLVp~;?`+K>j^@A?QfIuQ zek#i-cq3-!tXc2&pp6Z+2{F!N*gifMo>_N|IG?@V%xu)W8`!n`7M_O&Ns~zZua}a| zUB?Gq?9$rKyOw!ee+MwXql>Jq2cuEk@^SFYpyiQrQ9i$)uR*RPI<=6Sj$sJ=PUZgN zC41Z;VHLxpcoytfL@jB2O#&oyAegz5ep-FUwPvMaesK{UMB2f*9q+icHa4o)t_7_{ z0Pv2lL=qEJ(;U617WEh@UX_zpYb5#n=QH=h)Az!k8L-r}2krVGd=A$6kKNs8ujZdy z*|JOVPrq_M$pIgw<1AGoM!Fft;`-2hgUj0Vw zvoj^P=fE)$^5XH*()>kCZ?ZDc&dB}!c=%9nWjFEBgcnuQ3~?Y|i}B-;wi^fLIp+C? zEgjHP|2S^9>5$=w;b`7s=lvB zxSe+4j|vkORPu>z{yA~9f$seL5bhTFUeuy+q^3P}N;^GGMTzBsaF|_y`voWk#McZg zt*69=Q{5$2f`08yN4IWvso50eq;?#H^qG5>CBICA6=g39^KnH@e3ZYH(`k7a(5t0W zbp@v2IzG%?V_2WHaG6&tH@HU`*7|kA$@3y4^KN`b;`8^A&j%ZLyewV7;gSu1`r)!; z#C<_1&dv9G^FwhDpD6u+rz@D%^&Q`I>w=ieVn?!c@GivB z=K5cBk_yv2jc1jLSHrVu7<6GGpO5N#rEN4zefpDzn1i%Wi_5_KxMJzE?Ca)br2>@t z6}FwqU#6L^QjK&B4VkYGYvvNh$9boxr*V>_%W}HB?--6Oof@5&8ZMlGIX+4D2rd1g z(5H}~hBF3f*X7PXjEmq@{b}cv`XlI}2t5tY4%xxC`VloC?w%&-OGY6`m59yvuPu`K z^^WRFpDjF%Z5xsukS!g&tJ^w@%52k{yUkJW<;W8ig!P-P#>^}4Z*?2oTeq5x3+~Be zJvhNRGHGh0awo9v=No-=aqb5CUacTs@ZJx*O2v`U>(YHKi>)4ADn0~rIGu`XXZB6P z{b?Pxghl7&@_vq}-I>k7Tx|DY^2gg6Wd!!aKS7?h@bi@74HE(fw3#!U`BF8&Ny@ph zN)oY;$Jw_sy{>sFcGFA(aC*(Z+#kf&$bBcCq*g?1I90uhVp3SPF%?RXv5(sKF1VJZGsM{>7eL~ z5D3w3PnWe=g+?Y}(JE}*@~&d>hT=i$aN^T}=F?2-b%0>`R7&8?`l;NosT^@Xi@XtM zxJG&o#=XeA1juZlM;AJNT?5GuUbV?mGwFgq;A%i*-a$*w7Ak2&O>!t!1XG^{*!)5oj2k1&W>P`pA7U!0YRQS zNE+FeoEeyznQ`|a8`8*Ni#EFzi({(SUB5GCVFJH1)=MbW^>CxN`o;!o#B8<4p{Rd5qaG5(eN%tGst3b=J*Y5Kwuz0meK6!i6`(u-aI zT2>MtJAqtt>#XtiWBbU5X3pJQA+*TCcU_D(LBa}!|AQ+X=?2??y%oa?;15D>3!+B4 z?>na62}CPFP)R+t3HMD>W$s1F3>7a=&$sbVo)RF;@K;F7o{lL$T1C{Y_Au5=bg4-_ zSMp^ttSsGetm^>X;`Q;neWpe@9J`IBL=T3II056h!!46e_9J#{--qrSNwNMQmL$ig z7lBYZ4Qlnfw;5G{bIuSpas-r)4>lw4m~)hQ4CF6&Yw%-aua^v3(EmsEWDfX z81G!%2{#H9oY<}3#rXub`m|Gb-nNP1Ct>*`DjN=0aN(@=N881%SXe81yCcr<)N5<* z+3K}=5_-DUdv)x7(euSBz;vR=J>35G@TT@~OLLpQ*@Rai^Nr7`aLIT#QiYr7U|Jd= zK}&1RteoTQo;)eEw5tdY51(pxUHSpY)^L~63S5EB;o=3&ymi?_6>w^~p>2pcHfRuo zVG|w_XXP92yMC-9aBdLbO_mEDSp@E{ll!TYm;Me9{)OvM0oKOJ@0Y&{cG_dBxVG>J zT8L8Vb!|A@8T#xFtKIK#v%dN#myId%01&UPwYzm|;;ZQx&6`Ue@xhmRBt#PQUX%8_ z5URnmj=}GJt&f891plW1=7e+|Q%+U$v?XFc9>GaQzJsx@!?6$wnd7D39Q5&C>-220 zo5X(oGSa8|6t8Gz$=C1$)*U?AeZ08 zoP9U^=giHT_PT=^NlA%hKPR_^-P%x-ehoO;Nn$$t;=BV$WIF0u2cdosC&|VX>kvUm zq@eiilW}p%`fod}Bm2q!s;s%Dd>o=u;pgMI_7{yj@~ZFjLAwc|~-csQHf)vITV{W{=i zJcymF*IAK7GJ-E{7bAiKXQk6G#T)K?f5Fh=6Ex_MtMW=a$Spa6Xx8J*avP#}|q%j)H1^Lh8*xrZYsjxD6gg!ofgaz1NyyDe@lWxg~@eWcT3lP6|ejRLfwGK8MZTo_yjF>4a7z2Rub1(DM4UwdPw1SK3j3%s?&_|nU$E6Admj0T8q4_g_EJ2YYuo(hT-)*lqc@Q^YD7$$Eq1>Vy z`(oa#E2zHwsMHed1;g#h^M3<_01ByOaXA$En0z|qKeRL2GN{|X<))siYqOkqvG_q8 zAn-?-@%8%twXtKtAIlcqDXs$YIS(`Og(F=|?U&DQ^6fgc?J(}R zh-Oi?g4Nh<#DzJGtBubZKe-Vt<*2+l(B;R6H&NN}h?n|FmmWJXvYum> zl98U4hU+}e9F=6%Doxvs#H9f#j6jN@(^)n3A2Q;s5)ms`V6blLu+hMkI+;}JQpG?ZAuMwt5P$SAum$qv6X5X+l0_s zXt7Y3z2FG(XV&Vzo<$2~l!NaH7b%@=fSVnGGKC4~1fq|TKS8CWLzn;qD5EY?LQWDI z)Gj(K6lH0{=e~vsgvgyoLr@a1Nb*^2=;K3g+6_TeMpU>Ua`vp|D}K<{kc9#&1O-+B zG&GP7I>iWtpc%Cx2yVov@e(D7+$MLrfXcAbVuBh+n6!*FvS@8r5_m&uPYUK;1bRFr zQZtzW1P$HQJxviV5W+>4Qy_%O5Y}R9+(_i53qr^lAlo#H_WL7;FyuaHNEWGant~2gdjK2Qx`)tS6+k1$fE+dj38Ilape{}jB_K_%qt>A2JgcoP(N0g13+jMKNS#q*K#R%P5lEh4)Ow|8Lf!Y8 zgE9_WQi6}q@D_f!D%sd(}P}c4MvIrK{SL^0$uWfs5|6JZAOY*Z6N=SFbdf#j7Be*|TWP^}(p%ut9nO zV=>({Z1>RNE%8#h6 z?c+OIYB(yWrCtH*8i=5grc%n(G7$ol7T1B6E9#6C;zDTT%LHBvWoumpSq&8@ z%)u_~dvh^l#}*jU2Q&}|W2S&uw4(`w5Ky7PP|*pUe10&D1ECMSEB0G{qee6f_H*@D)e|N+1*JT(Af8s6d$( z=(r6&#tEQp9|AemAUw(isE|<)I$uQzDtrMtiiFVGCTcOE&VkT~sqqx>@H}?V_j(q} z66`@T=~WnVkrL?-`WBo=e+>s?7lDS(011p;LTJCsgbOZq0y&OA&KYuVu+AkqT1;M# zfELQ2916;Up-3KDL8PoO7+eYTR$|mPOC3HZ09Ma76?Ae!fC6v0VE)%-##dnVN;<)G z%Oo|ZyQ#BK`B#*we}YXR6Atv)5kf&pdMrJizdynKs=qHzJln*eRi zBY`ASFup8UEL$(o+W;l#035sI8Wg zR~Wrv=S^!n1G;yRbx#qX{EEDouU4u_MsVorIrML|6%fkGO9S&Q1P>Fw0{lTTgASou zCPBb}3MwJA0B-Y$zy=Fo98NIZpI`=$3|a2PfU(Jw0Fx!Z4KZfa?gt=ayFx1nIRNtl zyoC}pS<2?O#pp;Cw!>N`o8(Gxl>P?XK9HLOz%}szTACwxO(&g#a{n-=33+bmD@tJo z#F&dz9e7WQ=}a6PQr&R`nTKJ7d=o_e@~_OmzkhG@ZyyGQ{6G3w$_ex1`TYERf-KRl zOUrM(IcC!gjK<_X;*wQb|cp_w>pcKkCL0;OpZYk5)bG=vbU4Mu_rz zA6Qp$X;p6-|DrU+mF|sp)#uk+DQ8OgN{yhtXaUL$S>c`L)u2(B{z&o1&Bb{||10$I zhgZR46rPnTrMR0pM|Cr8oCLjA`kd0Cj#Jsa;o{H+@HwZnpk$-=MNi(ykJC}pfkfDv zvC;B!Qhm|V_W=%@g_CEAyDi2kLr1Ht>rXL%K!!Q6tA~%zAZ6nx-jdk#$M=2c%~Co4 z*Q?*_N>#|5D32Qs0m6iG zW^Aro=5}u=jiIGHdFeg@&_;gaNKA=r`yllL=_VN;Q05K~Y=F!|e@k&=6B(%tp`^&zWoxDOgSC0quiWu4i z0943tOSRP^7`|&fQ63k!)>2h5PEG+;c4C#VfV{3)LSnZI@>3p#fuEU0uJEiyaS6 rl8a|A`tOP{$0>bE~1uglB+=grFPRhFV3}ZA1PC3P8xK literal 0 HcmV?d00001 diff --git a/TestPlans/system/Link_Flap_Error_Disable/SONIC_4_0_0_Link_Flap_Error_Disable_Testplan.md b/TestPlans/system/Link_Flap_Error_Disable/SONIC_4_0_0_Link_Flap_Error_Disable_Testplan.md new file mode 100644 index 000000000000..22a358f36070 --- /dev/null +++ b/TestPlans/system/Link_Flap_Error_Disable/SONIC_4_0_0_Link_Flap_Error_Disable_Testplan.md @@ -0,0 +1,371 @@ +# SQA Test Plan +# Link Flap Error Disable +# SONiC 4.0.0 Release + +## Test Plan Revision History + +| Rev | Date | Author | Change Description | +| ---- | ---------- | --------------- | ------------------ | +| 0.1 | 5/28/2021 | Kesava Swamy K | Initial Version | +| 0.2 | | | | + +## List of Reviewers + +| Function | Name | +| :------: | :--: | +| QA | Chandra Bhushan Singh | +| DEV | Steven Lu | + +## List of Approvers + +| Function | Name | Date Approved | +| :------: | :--: | :-----------: | +| | | | + +## Definition/Abbreviation + +| **Term** | **Meaning** | +| -------- | -------------------------- | +| | | + +## Feature Overview + + The Port Link Flap Error Disable feature prevent excessive interface flapping events from adversely affecting routing protocols and routing tables in the network. Suppressing port state change events to protect the system resources. More details in HLD. + +## 1 Test Focus Areas + +### 1.1 CLI Testing + + - Validation of CLI config command "link-error-disable flap-threshold sampling-interval recovery-interval" to configure the feature on interface level. + - Validation of CLI config command "link-error-disable flap-threshold sampling-interval recovery-interval" to enable the feature on global level. + - Validation of CLI show command "show errdisable link-flap" and "show errdisable recovery". + +### 1.2 Functional Testing + + - Verify that with Link Flap Error Disable default config on that physical interface, port goes down (or suppressed) when port flaps occur and comes up(or released ) after recovery-interval expire. + - Verify that with Link Flap Error Disable non-default config on that physical interface, port goes down (or suppressed) when port flaps occur and comes up(or released ) after recovery-interval expire. + - Verify that with different global and interface level config of Link Flap Error Disable, always interface level config is preferred. + - Verify that with Link Flap Error Disable sampling-interval is set to 0, port goes down (or suppressed) when port flaps as per flap-threshold. + - Verify that with Link Flap Error Disable recovery-interval is set to 0, port remains in operationally down state until administrator overrides it. + - Verify that with Link Flap Error Disable flap-threshold is set to 1, port goes down (or suppressed) immediately after one port flap (one time up to down). + - Verify that corresponding syslog is generated when port is suppressed or released by Link Flap Error Disable. + - Verify that after config/un config of Link Flap Error Disable feature on the interface, port gets suppressed/released correctly as per config. + - Verify the Port Channel interface (with 2 member ports) status is properly updated when both member ports are suppressed/released by Link Flap Error Disable. + - Verify that on a port routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when the port gets suppressed(/released) by Link Flap Error Disable. + - Verify that on a port channel routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when both the member ports gets suppressed(/released) by Link Flap Error Disable. + - Verify that on a Vlan routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when port associated to that Vlan gets suppressed(/released) by Link Flap Error Disable. + - Verify the Vlan Autostate status when Vlan member port is suppressed/released by Link Flap Error Disable. + - Verify that with different Link Flap Error Disable interface level configs on multiple interfaces, each port gets suppressed/released as per that specific interface configuration. + - Verify the MCLAG state and peer-link state when the peer-link port channel member port is suppressed/released by Link Flap Error Disable. + - Verify that with RPVST running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed by Link Flap Error Disabled. + - Verify that with PVST running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed by Link Flap Error Disabled. + - Verify that with MSTP running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed by Link Flap Error Disabled. + - Verify the UDLD state update accordingly when the port gets suppressed or released by the Link Flap Error Disable. + - Verify the MAC learning and L2 traffic forwarding after port is suppressed and released by Link Flap Error Disable. + - Verify the port operational state after continuous port flaps for two consecutive recovery-interval (non-default value). + - Verify the port state after warm boot, with warm boot is performed when the port is in suppressed state with non zero recovery-interval greater than warm boot time. + - Verify the port state after warm boot, with warm boot is performed when the port is in suppressed state with non zero recovery-interval less than warm boot time. + - Verify the Link Flap Error Disable functionality after Reboot/FastReboot. + - Verify that there is no memory leak with Link Flap Error Disable feature enabled and continuous port flaps are performed on the interface. + - Verify that user should not be allowed to configure the Link Flap Error Disable on port channel interface and vlan interfaces. + - Verify the Link Flap Error Disable feature via REST. + + +## 2 Topologies + + ![Topology](LinkFlapErrorDisable.png "Figure: Topology 1") + +#### Topology 1 +Topology Description - + - Minimum 4 back to back links are required between DUT1-DUT2, and these links will be used as physical ports, or Vlan associated ports or port channel interfaces based on the test case requirement. + - In case of L3 traffic related test, corresponding dynamic protocol or static routes will be configured. + - For MCLAG peer-link port state validation after Link Flap Error Disable, DUT3 will be sued as MCLAG client, and corresponding MCLAG port channel and other client Vlan will be configured in the respective test cases. + +## 3 Test Case and objectives + +### 3.1 CLI Test Cases + +#### 3.1.1 Validate CLI config command "link-error-disable flap-threshold sampling-interval recovery-interval" to configure the feature on interface level. + +| **Test ID** | **LinkFlapErrorDisable_CLI_001** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Validate CLI command "link-error-disable flap-threshold sampling-interval recovery-interval" to configure the feature on interface level.** | +| **Test Setup** | **Topology 1** | +| **Type** | **CLI** | +| **Steps** | 1. Validate CLI options for command "link-error-disable flap-threshold sampling-interval recovery-interval" interface level".
2. Check the running-config is updated correctly.| + + +#### 3.1.2 Validate CLI command "link-error-disable flap-threshold sampling-interval recovery-interval" to configure the feature on global level. + +| **Test ID** | **LinkFlapErrorDisable_CLI_002** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Validate CLI command "link-error-disable flap-threshold sampling-interval recovery-interval" to configure the feature on global level.**| +| **Test Setup** | **Topology 1** | +| **Type** | **CLI** | +| **Steps** | 1. Validate CLI options for command "link-error-disable flap-threshold sampling-interval recovery-interval" to configure the feature on global level.
2. Check the running-config is updated correctly.| + + +#### 3.1.3 Validation of CLI show command "show errdisable link-flap" and "show errdisable recovery". + +| **Test ID** | **LinkFlapErrorDisable_CLI_003** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Validation of CLI show command "show errdisable link-flap" and "show errdisable recovery".**| +| **Test Setup** | **Topology 1** | +| **Type** | **CLI** | +| **Steps** | 1. Validate CLI options for show commands "show errdisable link-flap" and "show errdisable recovery".| + + +### 3.2 Functional Test Cases + +#### 3.2.1 Verify that with Link Flap Error Disable default config on that physical interface, port goes down (or suppressed) when port flaps occur and comes up(or released ) after recovery-interval expire. + +| **Test ID** | **LinkFlapErrorDisable_Func_001** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that with Link Flap Error Disable default config on that physical interface, port goes down (or suppressed) when port flaps occur and comes up(or released ) after recovery-interval expire.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) with default values for flap-threshold, sampling-interval and recovery-interval.
2. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold and sampling-interval configured on d1port1.
3. Verify that d1port1 gets suppressed and port operational state moved to Down. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
4. Wait until the recovery-interval expire, and verify that port gets released and port operational state is UP now. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
5. In DUT2, perform port flaps again but not as per flap-threshold and sampling-interval configured on d1port1.
6. Verify that now d1port1 don't get suppressed as the port flaps didn't occur as per the default config parameters. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.| + +#### 3.2.2 Verify that with Link Flap Error Disable non-default config on that physical interface, port goes down (or suppressed) when port flaps occur and comes up(or released ) after recovery-interval expire. + +| **Test ID** | **LinkFlapErrorDisable_Func_002** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that with Link Flap Error Disable non-default config on that physical interface, port goes down (or suppressed) when port flaps occur and comes up(or released ) after recovery-interval expire.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) and configure non-default values for flap-threshold, sampling-interval and recovery-interval.
2. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold and sampling-interval configured on d1port1.
3. Verify that d1port1 gets suppressed and port operational state moved to Down. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
4. Wait until the recovery-interval expire, and verify that port gets released and port operational state is UP now. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
5. In DUT2, perform port flaps again but not as per flap-threshold and sampling-interval configured on d1port1.
6. Verify that now d1port1 don't get suppressed as the port flaps didn't occur as per the configured values to parameters. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.| + +#### 3.2.3 Verify that with different global and interface level config of Link Flap Error Disable, always interface level config is preferred. + +| **Test ID** | **LinkFlapErrorDisable_Func_003** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that with different global and interface level config of Link Flap Error Disable, always interface level config is preferred.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature globally with default values and verify feature is enabled with all default values on all interfaces as per global configuration. And on the physical port (d1port1) enable/configure with non-default values for flap-threshold, sampling-interval and recovery-interval.
2. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold and sampling-interval configured on d1port1.
3. Verify that d1port1 gets suppressed and port operational state moved to Down based on the interface level config but not as per global configuration .
4. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
5. Wait until the recovery-interval expire, and verify that port gets released and port operational state is UP now.
6. Change the global config of those parameters to non-default values.
7. In DUT2, perform port flaps again but not as per globally configured flap-threshold and sampling-interval.
8. Verify that now d1port1 don't get suppressed as the port flaps didn't occur as per the configured values to parameters on the interface.
9. Remove the Link Flap Error Disable config on the interface.
10. Verify that feature is still enabled on the port as the feature is globally enabled/configured. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
11. In DUT2, perform port flaps again but not as per globally configured flap-threshold and sampling-interval.
12. Verify that now d1port1 don't get suppressed as the port flaps occur as per the configured values to parameters at global level. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
13. Verify that after recovery-interval expire port gets released and operational state moved to UP.
14. Remove the global config, check that global config is not reflected on the interfaces and feature is disabled on all interfaces. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.| + +#### 3.2.4 Verify that with Link Flap Error Disable sampling-interval is set to 0, port goes down (or suppressed) when port flaps as per flap-threshold. + +| **Test ID** | **LinkFlapErrorDisable_Func_004** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that with Link Flap Error Disable sampling-interval is set to 0, port goes down (or suppressed) when port flaps as per flap-threshold.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) with non-default values for flap-threshold (say 10), recovery-interval(say 10) and sampling-interval set to 0.
2. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold (10 up-to-down events) in 10 seconds.
3. Verify that d1port1 gets suppressed and port operational state moved to Down.
4. Wait until the recovery-interval expire, and verify that port gets released and port operational state is UP now.
5. In DUT2, perform port flaps again as per flap-threshold(10 up-to-down events) in 20 sec.
6. Verify that d1port1 get suppressed and port state moved to operational Down state.
7. Verify that after recovery-interval is over, port operational state moved to UP.| + +#### 3.2.5 Verify that with Link Flap Error Disable recovery-interval is set to 0, port remains in operationally down state until administrator overrides it. + +| **Test ID** | **LinkFlapErrorDisable_Func_005** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that with Link Flap Error Disable recovery-interval is set to 0, port remains in operationally down state until administrator overrides it.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) with non-default values for flap-threshold (say 5), recovery-interval(say 10) and sampling-interval (10).
2. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold (5 up-to-down events) in 10 seconds.
3. Verify that d1port1 gets suppressed and port operational state moved to Down.
4. Wait until the recovery-interval (10 sec) expire, and verify that port gets released and port operational state is UP now.
5. Change the recovery-interval to 0. And in DUT2, perform port flaps again as per flap-threshold(5 up-to-down events) in 10 sec.
6. Verify that d1port1 get suppressed and port state moved to operational Down state.
7. Wait for 10 sec, verify that port operational state is still Down.
8. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
9. Perform shut no shut on the interface, and then verify that interface is operationally UP.
10. In DUT2, perform port flaps again as per flap-threshold(5 up-to-down events) in 10 sec.
6. Verify that d1port1 get suppressed and port state moved to operational Down state.
7. Wait for 10 sec, verify that port operational state is still Down.
8. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
9. Remove the Link Flap Error Disable config on the interface, and then verify that interface is operationally UP.| + +#### 3.2.6 Verify that with Link Flap Error Disable flap-threshold is set to 1, port goes down (or suppressed) immediately after one port flap (one time up to down). + +| **Test ID** | **LinkFlapErrorDisable_Func_006** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that with Link Flap Error Disable flap-threshold is set to 1, port goes down (or suppressed) immediately after one port flap (one time up to down).** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) with non-default values for recovery-interval(say 10), sampling-interval (10) and flap-threshold to 1.
2. In DUT2, perform one time port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) in 10 seconds.
3. Verify that d1port1 gets suppressed and port operational state moved to Down.
4. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
5. Wait until the recovery-interval (10 sec) expire, and verify that port gets released and port operational state is UP now.
6. Change flap-threshold to 5. And in DUT2, perform one time port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) in 10 seconds.
7. Verify that d1port1 don't get suppressed and port state not moved to operational Down state.
8. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
9. Wait for 10 sec, verify that port operational state moved to UP.| + +#### 3.2.7 Verify that corresponding syslog is generated when port is suppressed or released by Link Flap Error Disable. + +| **Test ID** | **LinkFlapErrorDisable_Func_007** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that corresponding syslog is generated when port is suppressed or released by Link Flap Error Disable.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) with non-default values for recovery-interval, sampling-interval and flap-threshold
2. In DUT2, perform one time port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold and sampling interval.
3. Verify that d1port1 gets suppressed and port operational state moved to Down.
4. Verify that in syslog, a proper log message is generated informing the port state going down due to link flap error disable.
5. Wait until the recovery-interval expire, and verify that port gets released and port operational state is UP now.
6. Verify that in syslog, a proper log message is generated informing the port state going up due to link flap error disable recovery-interval expire.| + +#### 3.2.8 Verify that after config/un config of Link Flap Error Disable feature on the interface, port gets suppressed/released correctly as per config. + +| **Test ID** | **LinkFlapErrorDisable_Func_008** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that after config/un config of Link Flap Error Disable feature on the interface, port gets suppressed/released correctly as per config.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) with non-default values for recovery-interval, sampling-interval and flap-threshold
2. In DUT2, perform one time port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold and sampling interval.
3. Verify that d1port1 gets suppressed and port operational state moved to Down.
4. Verify that "show errdisable link-flap" commands shows the correct status for that interface.
5. Wait until the recovery-interval expire, and verify that port gets released and port operational state is UP now.
6. Remove the config on the interface and re configure with same values.
7. Repeat the steps from 2 to 5, check results are same as previous.| + +#### 3.2.9 Verify the Port Channel interface (with 2 member ports) status is properly updated when both member ports are suppressed/released by Link Flap Error Disable. + +| **Test ID** | **LinkFlapErrorDisable_Func_009** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify the Port Channel interface (with 2 member ports) status is properly updated when both member ports are suppressed/released by Link Flap Error Disable.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical ports (d1port1, d1port2 - members of port channel interface) with non-default values for recovery-interval, sampling-interval and flap-threshold
2. In DUT2, perform port flaps (shut/no shut) on the corresponding ports (d2port1, d2port2, that is connected to DUT1 port) as per flap-threshold and sampling interval.
3. Verify that d1port1, d1port2 ports gets suppressed and port operational state moved to Down.
4. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
5. Verify that port channel interface is Down.
6. Wait until the recovery-interval expire, and verify that both the ports gets released and port operational state is UP now.
7. Verify that port channel is UP, and verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
8. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port2, that is connected to DUT1 port) as per flap-threshold and sampling interval.
9. Verify that d1port2 (not d1port1) port gets suppressed and port operational state not moved to Down state as only one port is down.
10. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
11. Verify that port d1port2 is UP after recovery-interval expire and port channel state should not change.
12. Send Learned traffic through this port channel and check that traffic forward successfully and interface counters and port channel counters should updated correctly.| + +#### 3.2.10 Verify that on a port routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when that physical port gets suppressed(/released) by Link Flap Error Disable. + +| **Test ID** | **LinkFlapErrorDisable_Func_010** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that on a port routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when that physical port gets suppressed(/released) by Link Flap Error Disable.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. Configure port routing interface between the DUTs with IPv4/IPv6 address.
2. Establish IPv4/IPv6 BGP neighborship.
3. Configure a Ipv4/Ipv6 static route in DUT1 with next hop as port routing interface, check that IPv4/IPv6 route table is updated with this route.
4. configure a loopback interface with IPv4/IPv6 address in DUT2, redistribute it in BGP. Check this IPv4/IPv6 route is learned and updated in DUT1 route table via Vlan routing interface as next hop.
5. Do ping from DUT2 to the IPv4/IPv6 address, check that ARP/ND table updated with egress interface as port routing interface.
6. Send IPv4/IPv6 traffic from TG1 to TG2 such that traffic forwards via port routing interface.
7. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1- member port of that Vlan) with non-default values for recovery-interval, sampling-interval and flap-threshold
8. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1 that is connected to DUT1 port) as per flap-threshold and sampling interval.
9. Verify that d1port1, port gets suppressed and port operational state moved to Down.
10. Verify that "show errdisable link-flap" commands shows the correct status for that interface.
11. In DUT1, verify that port routing interface is Down. Corresponding ARP/ND entries are removed. BGP peers are Down, and corresponding static and dynamic routes are removed from route table.
12. Wait until the recovery-interval expire, and verify that the port gets released and is UP.
13. Verify that "show errdisable link-flap" commands shows the correct status for that interface.
14. In DUT1, verify that port routing interface is UP, corresponding ARP/ND table are updated, BGP peers are UP and route table also updated with static and dynamic routes.
15. Send the traffic again and check that traffic is forwarded successful via port routing interface and check that interface counters also getting updated properly.| + +#### 3.2.11 Verify that on a port channel routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when both the member ports gets suppressed(/released) by Link Flap Error Disable. + +| **Test ID** | **LinkFlapErrorDisable_Func_011** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that on a port channel routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when both the member ports gets suppressed(/released) by Link Flap Error Disable.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. Configure port channel (with 2 member ports) routing interface between the DUTs with IPv4/IPv6 address.
2. Establish IPv4/IPv6 BGP neighborship.
3. Configure a Ipv4/Ipv6 static route in DUT1 with next hop as port channel routing interface, check that IPv4/IPv6 route table is updated with this route.
4. configure a loopback interface with IPv4/IPv6 address in DUT2, redistribute it in BGP. Check this IPv4/IPv6 route is learned and updated in DUT1 route table via port channel routing interface as next hop.
5. Do ping from DUT2 to the IPv4/IPv6 address, check that ARP/ND table updated with egress interface as port channel interface.
6. Send IPv4/IPv6 traffic from TG1 to TG2 such that traffic forwards via port channel routing interface.
7. In DUT1, enable/configure the Link Flap Error Disable feature on the physical ports (d1port1, d1port2 - members of port channel interface) with non-default values for recovery-interval, sampling-interval and flap-threshold
8. In DUT2, perform port flaps (shut/no shut) on the corresponding ports (d2port1, d2port2, that is connected to DUT1 port) as per flap-threshold and sampling interval.
9. Verify that d1port1, d1port2 ports gets suppressed and port operational state moved to Down.
10. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
11. In DUT1, verify that port channel routing interface is Down. Corresponding ARP/ND entries are removed. BGP peers are Down, and corresponding static and dynamic routes are removed from route table.
12. Wait until the recovery-interval expire, and verify that both the ports gets released and port operational state is UP now.
13. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
14. In DUT1, verify that port channel routing interface is UP, corresponding ARP/ND table are updated, BGP peers are UP and route table also updated with static and dynamic routes.
15. Send the traffic again and check that traffic is forwarded successful via port channel routing interface.| + +#### 3.2.12 Verify that on a Vlan routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when port associated to that Vlan gets suppressed(/released) by Link Flap Error Disable. + +| **Test ID** | **LinkFlapErrorDisable_Func_012** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that on a Vlan routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when port associated to that Vlan gets suppressed(/released) by Link Flap Error Disable.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. Configure Vlan routing interface between the DUTs with IPv4/IPv6 address.
2. Establish IPv4/IPv6 BGP neighborship.
3. Configure a Ipv4/Ipv6 static route in DUT1 with next hop as Vlan routing interface, check that IPv4/IPv6 route table is updated with this route.
4. configure a loopback interface with IPv4/IPv6 address in DUT2, redistribute it in BGP. Check this IPv4/IPv6 route is learned and updated in DUT1 route table via Vlan routing interface as next hop.
5. Do ping from DUT2 to the IPv4/IPv6 address, check that ARP/ND table updated with egress interface as Vlan routing interface.
6. Send IPv4/IPv6 traffic from TG1 to TG2 such that traffic forwards via Vlan routing interface.
7. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1- member port of that Vlan) with non-default values for recovery-interval, sampling-interval and flap-threshold
8. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1 that is connected to DUT1 port) as per flap-threshold and sampling interval.
9. Verify that d1port1, port gets suppressed and port operational state moved to Down.
10. Verify that "show errdisable link-flap" commands shows the correct status for that interface.
11. In DUT1, verify that Vlan routing interface is Down. Corresponding ARP/ND entries are removed. BGP peers are Down, and corresponding static and dynamic routes are removed from route table.
12. Wait until the recovery-interval expire, and verify that the port gets released and is UP.
13. Verify that "show errdisable link-flap" commands shows the correct status for that interface.
14. In DUT1, verify that Vlan routing interface is UP, corresponding ARP/ND table are updated, BGP peers are UP and route table also updated with static and dynamic routes.
15. Send the traffic again and check that traffic is forwarded successful via Vlan routing interface and check that interface counters are also getting updated.| + +#### 3.2.13 Verify the Vlan Autostate status when vlan member port is suppressed/released by Link Flap Error Disable. + +| **Test ID** | **LinkFlapErrorDisable_Func_013** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify the Vlan Autostate status when Vlan member port is suppressed/released by Link Flap Error Disable.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. Vlan autostate is enabled by default.
2. Create a Vlan and associate a port (d1port1) to that Vlan, verify Vlan status as active.
3. Enable/Configure Link Flap Error Disable on that port with non-default values for sampling-interval, flap-threshold and recovery-interval.
4. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1 that is connected to DUT1 port) as per flap-threshold and sampling-interval.
5. Verify that d1port1, port gets suppressed and port operational state moved to Down.
6. Verify that "show errdisable link-flap" command shows the correct status for that interface.
7. Verify that corresponding Vlan become in active. Now disable autostate on that port, check that Vlan become active as autostate is disabled.
8. Check that recovery-interval, port is operationally UP and Vlan is active.
9. Re enable autostate and check that vlan status is active only.| + +#### 3.2.14 Verify that with different Link Flap Error Disable interface level configs on multiple interfaces, each port gets suppressed/released as per that specific interface configuration. + +| **Test ID** | **LinkFlapErrorDisable_Func_014** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that with different Link Flap Error Disable interface level configs on multiple interfaces, each port gets suppressed/released as per that specific interface configuration.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. Configure/enable Link Flap Error Disable with different non-default values on multiple interfaces (will try to configure different set of configs on all interfaces (including interface that are not UP) using a range command, if command is available in interface range mode).
2. In DUT2, perform the port flaps (shut/no shut) on the corresponding ports (connected to DUT1 ports) as per the configured flap-threshold and sampling-interval on those corresponding interfaces in DUT1.
3. Verify that ports in DUT1 are moved to down state and the status is updated properly under "show errdisable link-flap" command.
4. Wait until the corresponding recovery-interval of those ports expire, and verify that the port gets released and is UP and link flap error disable status is properly updated under "show errdisable link-flap" command.| + +#### 3.2.15 Verify the MCLAG state and peer-link state when the peer-link port channel member port is suppressed/released by Link Flap Error Disable. + +| **Test ID** | **LinkFlapErrorDisable_Func_015** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify the MCLAG state and peer-link state when the peer-link port channel member port is suppressed/released by Link Flap Error Disable.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. Configure MCLAG between DUT1-DUT2 with port channel as peer-link with DUT-3 as MCLAG client.
2. In DUT1, enable/configure the Link Flap Error Disable feature on the physical ports (d1port1, d1port2 - members of port channel interface) with non-default values for recovery-interval, sampling-interval and flap-threshold
3. In DUT2, perform port flaps (shut/no shut) on the corresponding ports (d2port1, d2port2, that is connected to DUT1 port) as per flap-threshold and sampling interval.
4. Verify that d1port1, d1port2 ports gets suppressed and port operational state moved to Down.
5. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
6. Verify that port channel interface is Down and the peer-link also operationally down.
7. Wait until the recovery-interval expire, and verify that both the ports gets released and port operational state is UP now.
8. Verify that port channel is UP and peer-link also comes UP.
9. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
10. Check the traffic forwarding after peer-link is UP.| + +#### 3.2.16 Verify that with RPVST running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed by Link Flap Error Disabled. + +| **Test ID** | **LinkFlapErrorDisable_Func_016** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that with RPVST running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed/released by Link Flap Error Disabled.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. Run RPVST between the DUTs after convergence happened, configure/enable Link Flap Error Disable on the designated port on root device/or non-root device having designated port.
2. Perform port flaps from the partner DUT as per configured flap-threshold and sampling-interval.
3. Verify that the designated port gets suppressed by Link Flap Error Disable and port is operationally Down.
4. Verify that STP gets converged accordingly and port states are updated correctly.
5. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
6. After recovery-interval is completed, verify that port gets released and operationally UP.
7. Verify that STP gets converged and port states updated accordingly.
8. Configure/enable Link Flap Error Disable on the Root port on non-root device.
9. Perform port flaps from the partner DUT as per cofnigured flap-threshold and sampling-interval.
10. Verify that the Root port gets suppressed by Link Flap Error Disable and port is operationally Down.
11. Verify that STP gets converged accordingly and port states are updated correctly.
12. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
13. After recovery-interval is completed, verify that port gets released and operationally UP.
14. Verify that STP gets converged and port states updated accordingly.| + +#### 3.2.17 Verify that with PVST running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed by Link Flap Error Disabled. + +| **Test ID** | **LinkFlapErrorDisable_Func_017** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that with PVST running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed/released by Link Flap Error Disabled.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. Run PVST between the DUTs after convergence happened, configure/enable Link Flap Error Disable on the designated port on root device/or non-root device having designated port.
2. Perform port flaps from the partner DUT as per configured flap-threshold and sampling-interval.
3. Verify that the designated port gets suppressed by Link Flap Error Disable and port is operationally Down.
4. Verify that STP gets converged accordingly and port states are updated correctly.
5. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
6. After recovery-interval is completed, verify that port gets released and operationally UP.
7. Verify that STP gets converged and port states updated accordingly.
8. Configure/enable Link Flap Error Disable on the Root port on non-root device.
9. Perform port flaps from the partner DUT as per configured flap-threshold and sampling-interval.
10. Verify that the Root port gets suppressed by Link Flap Error Disable and port is operationally Down.
11. Verify that STP gets converged accordingly and port states are updated correctly.
12. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
13. After recovery-interval is completed, verify that port gets released and operationally UP.
14. Verify that STP gets converged and port states updated accordingly.| + +#### 3.2.18 Verify that with MSTP running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed by Link Flap Error Disabled. + +| **Test ID** | **LinkFlapErrorDisable_Func_018** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that with MSTP running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed/released by Link Flap Error Disabled.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. Run MSTP between the DUTs after convergence happened, configure/enable Link Flap Error Disable on the designated port on root device/or non-root device having designated port.
2. Perform port flaps from the partner DUT as per configured flap-threshold and sampling-interval.
3. Verify that the designated port gets suppressed by Link Flap Error Disable and port is operationally Down.
4. Verify that STP gets converged accordingly and port states are updated correctly.
5. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
6. After recovery-interval is completed, verify that port gets released and operationally UP.
7. Verify that STP gets converged and port states updated accordingly.
8. Configure/enable Link Flap Error Disable on the Root port on non-root device.
9. Perform port flaps from the partner DUT as per configured flap-threshold and sampling-interval.
10. Verify that the Root port gets suppressed by Link Flap Error Disable and port is operationally Down.
11. Verify that STP gets converged accordingly and port states are updated correctly.
12. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
13. After recovery-interval is completed, verify that port gets released and operationally UP.
14. Verify that STP gets converged and port states updated accordingly.| + +#### 3.2.19 Verify the UDLD state update correctly after port gets suppressed and released by the Link Flap Error Disable. + +| **Test ID** | **LinkFlapErrorDisable_Func_019** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify the UDLD state update correctly after port gets suppressed and released by the Link Flap Error Disable.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In both DUTs, configure UDLD on the physical port connecting the DUTs, check that UDLD status is updated as Bidirectional.
2. In DUT1, Configure Link Flap Error Disable on that port.
3. From DUT2, perform port flaps as per the configured flap-threshold and sampling-interval.
4. Verify that port in DUT1 gets suppressed and operational state moved to Down, and UDLD state is updated as undetermined.
5. After recovery-interval is over, verify that port gets released and operational state moved to UP and also check that UDLD state is updated as Bidirectional.
6. In DUT2, do 'ifconfig down' and check the UDLD status in DUT1 is updated as unidirectional.
7. Do 'ifconfig up' and check the UDLD status in DUT1 is updated as bidirectional.| + +#### 3.2.20 Verify the MAC learning and L2 traffic forwarding after port is suppressed and released by Link Flap Error Disable. + +| **Test ID** | **LinkFlapErrorDisable_Func_020** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify the MAC learning and L2 traffic forwarding after port is suppressed and released by Link Flap Error Disable.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) with default values for flap-threshold, sampling-interval and recovery-interval.
2.Send L2 learned traffic between TG ports, check that MAC is learned on d1port1 in DUT1 and traffic is forwarded successfully.
3. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold and sampling-interval configured on d1port1.
3. Verify that d1port1 gets suppressed and port operational state moved to Down. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
4. Verify that MAC entries related to this port also removed from FDB table.
5. Wait until the recovery-interval expire, and verify that port gets released and port operational state is UP now.
6. Send the traffic again and check the MAC learning and traffic forwarding and also check that inter counters on this port are getting updated properly.| + +#### 3.2.21 Verify the port operational state after continuous port flaps for two consecutive recovery-interval (non-default value). + +| **Test ID** | **LinkFlapErrorDisable_Func_021** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify the port operational state after continuous port flaps for two consecutive recovery-interval (non-default value).** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) with default values for flap-threshold (5), sampling-interval (10) and recovery-interval (60 s).
2. In DUT2, perform continuous port flaps (shut/no shut) for 120sec on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold and sampling-interval configured on d1port1.
3. Verify that in DUT1, d1port1 gets repeatedly suppressed and released and finally in suppressed state after completion of port flaps. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
4. Wait until the final recovery-interval expire, and verify that port gets released and port operational state is UP now.
5. Send the traffic and check traffic forwarding.| + +#### 3.2.22 Verify the port state after warm boot, when warm boot performed with the port is in suppressed state with non zero recovery-interval greater than warm boot time. + +| **Test ID** | **LinkFlapErrorDisable_Func_022** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify the port state after warm boot, when warm boot performed with the port is in suppressed state with non zero recovery-interval greater than warm boot time.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical ports (d1port1, d1port2, d1port3. d1port2,d2port3 are port channel member ports) with default values for flap-threshold (5), sampling-interval (10) and recovery-interval (600 s).
2. In DUT2, perform port flaps (shut/no shut) on the corresponding ports (that are connected to DUT1 port) as per flap-threshold and sampling-interval.
3. Verify that in DUT1, these ports gets suppressed and port states moved to Down state and port channel also Down. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
4. Before recovery-interval expire, perform warm boot.
5. After DUT comes UP (considering warm boot completed in 300 sec) check the link flap error disable status under "show errdisable link-flap" command, as warm boot completed before recovery-interval, ports should still be suppressed state and operational state should be down.
6. After recovery-interval expire, and verify that ports gets released and ports operational state is UP and port channel state also UP.| + +#### 3.2.23 Verify the port state after warm boot, when warm boot is performed with the port is in suppressed state with non zero recovery-interval less than warm boot time. + +| **Test ID** | **LinkFlapErrorDisable_Func_023** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify the port state after warm boot, when warm boot is performed with the port is in suppressed state with non zero recovery-interval less than warm boot time.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical ports (d1port1, d1port2, d1port3. d1port2,d2port3 are port channel member ports) with default values for flap-threshold (5), sampling-interval (10) and recovery-interval (60 s).
2. In DUT2, perform port flaps (shut/no shut) on the corresponding ports (that are connected to DUT1 port) as per flap-threshold and sampling-interval.
3. Verify that in DUT1, these ports gets suppressed and port states moved to Down state and port channel also Down. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
4. Before recovery-interval expire, perform warm boot.
5. After DUT comes UP (considering warm boot completed in 300 sec) check the link flap error disable status under "show errdisable link-flap" command, as recovery-interval expire during warm boot, ports should still be in released state and operational state should be UP and Port channel also should UP.| + +#### 3.2.24 Verify that port state gets suppressed and released as per config after Save Reboot and Fast boot. + +| **Test ID** | **LinkFlapErrorDisable_Func_024** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that port state gets suppressed and released as per config after Save Reboot and Fast boot.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical ports (d1port1, d1port2, d1port3. d1port2,d2port3 are port channel member ports) with default values for flap-threshold, sampling-interval and recovery-interval. Perform Save and Reboot in DUT1.
2. After DUT1 comes UP, in DUT2, perform port flaps (shut/no shut) for 120sec on the corresponding ports (that are connected to DUT1 port) as per flap-threshold and sampling-interval.
3. Verify that in DUT1, these ports gets suppressed and port states moved to Down state and port channel also Down. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
4. After recovery-interval expire, check the link flap error disable status under "show errdisable link-flap" command, as recovery-interval expire during warm boot, ports should be released state and operational state should be UP and Port channel also should UP.
5. Repeat the same steps after performing Fast boot in DUT1.| + +#### 3.2.25 Verify that there is no memory leak with Link Flap Error Disable feature enabled and continuous port flaps are performed on the interface. + +| **Test ID** | **LinkFlapErrorDisable_Func_025** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that there is not memory leak with Link Flap Error Disable feature enabled and continuous port flaps are performed on the interface.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on all the interfaces with non-default values for flap-threshold, sampling-interval and recovery-interval.
2. Note down the memory usage in the DUT1.
3. In DUT2, perform continuous port flaps (shut/no shut) for longer duration on the corresponding ports (that are connected to DUT1 port) as per flap-threshold and sampling-interval.
4. Verify that in DUT1, these ports gets suppressed and released as per the recovery-interval.
5. After long duration of port flaps stopped, and after recovery-interval expire, ports should be released state and operational state should be UP.
5. Note down the memory usage in DUT1.
6. Check the difference between the two readings and based on that report if there is any memory leak.| + +### 3.3 Negative Test Cases + +#### 3.3.1 Verify that user should not be allowed to configure the Link Flap Error Disable on port channel interface and Vlan interfaces. + +| **Test ID** | **LinkFlapErrorDisable_Func_026** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that user should not be allowed to configure the Link Flap Error Disable on port channel interface and Vlan interfaces.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. Try to configure Link Flap Error Disable on a port channel interface, it should not be accepted.
2. Try to configure Link Flap Error Disable on a Vlan channel interface, it should not be accepted. | + +### 3.4 Management + +#### 3.4.1 REST + +##### 3.4.1.1 Verify the Link Flap Error Disable feature via REST. + +| **Test ID** | **LinkFlapErrorDisable_Func_027** | +| -------------- | ------------------------------------------------------------ | +| **Test Name** | **Verify the Link Flap Error Disable feature via REST.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | This test case will be covered implicitly in REST run.| + +## Reference Links + +https://github.com/BRCM-SONIC/sonic_doc_private/blob/master/system/intf-dampening-HLD.md \ No newline at end of file From d89f5f64be489632686961c634f01f749b9a9c93 Mon Sep 17 00:00:00 2001 From: KeshavKa Date: Sun, 30 May 2021 22:28:12 -0700 Subject: [PATCH 2/4] as per updated in HLD, removed unsupported test cases --- ..._4_0_0_Link_Flap_Error_Disable_Testplan.md | 120 ++++++++---------- 1 file changed, 50 insertions(+), 70 deletions(-) diff --git a/TestPlans/system/Link_Flap_Error_Disable/SONIC_4_0_0_Link_Flap_Error_Disable_Testplan.md b/TestPlans/system/Link_Flap_Error_Disable/SONIC_4_0_0_Link_Flap_Error_Disable_Testplan.md index 22a358f36070..75d8e421cfb7 100644 --- a/TestPlans/system/Link_Flap_Error_Disable/SONIC_4_0_0_Link_Flap_Error_Disable_Testplan.md +++ b/TestPlans/system/Link_Flap_Error_Disable/SONIC_4_0_0_Link_Flap_Error_Disable_Testplan.md @@ -7,7 +7,7 @@ | Rev | Date | Author | Change Description | | ---- | ---------- | --------------- | ------------------ | | 0.1 | 5/28/2021 | Kesava Swamy K | Initial Version | -| 0.2 | | | | +| 0.2 | 5/31/2021 | | Removed unsupported tests as per latest update in HLD | ## List of Reviewers @@ -37,15 +37,13 @@ ### 1.1 CLI Testing - Validation of CLI config command "link-error-disable flap-threshold sampling-interval recovery-interval" to configure the feature on interface level. - - Validation of CLI config command "link-error-disable flap-threshold sampling-interval recovery-interval" to enable the feature on global level. + - Validation of CLI config command "link-error-disable flap-threshold sampling-interval recovery-interval" to enable the feature on interface range mode. - Validation of CLI show command "show errdisable link-flap" and "show errdisable recovery". ### 1.2 Functional Testing - Verify that with Link Flap Error Disable default config on that physical interface, port goes down (or suppressed) when port flaps occur and comes up(or released ) after recovery-interval expire. - - Verify that with Link Flap Error Disable non-default config on that physical interface, port goes down (or suppressed) when port flaps occur and comes up(or released ) after recovery-interval expire. - - Verify that with different global and interface level config of Link Flap Error Disable, always interface level config is preferred. - - Verify that with Link Flap Error Disable sampling-interval is set to 0, port goes down (or suppressed) when port flaps as per flap-threshold. + - Verify that with Link Flap Error Disable non-default config on that physical interface, port goes down (or suppressed) when port flaps occur and comes up(or released ) after recovery-interval expire. - Verify that with Link Flap Error Disable recovery-interval is set to 0, port remains in operationally down state until administrator overrides it. - Verify that with Link Flap Error Disable flap-threshold is set to 1, port goes down (or suppressed) immediately after one port flap (one time up to down). - Verify that corresponding syslog is generated when port is suppressed or released by Link Flap Error Disable. @@ -95,14 +93,14 @@ Topology Description - | **Steps** | 1. Validate CLI options for command "link-error-disable flap-threshold sampling-interval recovery-interval" interface level".
2. Check the running-config is updated correctly.| -#### 3.1.2 Validate CLI command "link-error-disable flap-threshold sampling-interval recovery-interval" to configure the feature on global level. +#### 3.1.2 Validate CLI command "link-error-disable flap-threshold sampling-interval recovery-interval" to configure the feature on interface range mode. | **Test ID** | **LinkFlapErrorDisable_CLI_002** | | -------------- | :----------------------------------------------------------- | -| **Test Name** | **Validate CLI command "link-error-disable flap-threshold sampling-interval recovery-interval" to configure the feature on global level.**| +| **Test Name** | **Validate CLI command "link-error-disable flap-threshold sampling-interval recovery-interval" to configure the feature on interface range mode.**| | **Test Setup** | **Topology 1** | | **Type** | **CLI** | -| **Steps** | 1. Validate CLI options for command "link-error-disable flap-threshold sampling-interval recovery-interval" to configure the feature on global level.
2. Check the running-config is updated correctly.| +| **Steps** | 1. Validate CLI options for command "link-error-disable flap-threshold sampling-interval recovery-interval" to configure the feature on interface range mode.
2. Check the running-config is updated correctly.| #### 3.1.3 Validation of CLI show command "show errdisable link-flap" and "show errdisable recovery". @@ -135,207 +133,189 @@ Topology Description - | **Type** | **Functional** | | **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) and configure non-default values for flap-threshold, sampling-interval and recovery-interval.
2. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold and sampling-interval configured on d1port1.
3. Verify that d1port1 gets suppressed and port operational state moved to Down. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
4. Wait until the recovery-interval expire, and verify that port gets released and port operational state is UP now. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
5. In DUT2, perform port flaps again but not as per flap-threshold and sampling-interval configured on d1port1.
6. Verify that now d1port1 don't get suppressed as the port flaps didn't occur as per the configured values to parameters. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.| -#### 3.2.3 Verify that with different global and interface level config of Link Flap Error Disable, always interface level config is preferred. +#### 3.2.3 Verify that with Link Flap Error Disable recovery-interval is set to 0, port remains in operationally down state until administrator overrides it. | **Test ID** | **LinkFlapErrorDisable_Func_003** | | -------------- | :----------------------------------------------------------- | -| **Test Name** | **Verify that with different global and interface level config of Link Flap Error Disable, always interface level config is preferred.** | -| **Test Setup** | **Topology 1** | -| **Type** | **Functional** | -| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature globally with default values and verify feature is enabled with all default values on all interfaces as per global configuration. And on the physical port (d1port1) enable/configure with non-default values for flap-threshold, sampling-interval and recovery-interval.
2. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold and sampling-interval configured on d1port1.
3. Verify that d1port1 gets suppressed and port operational state moved to Down based on the interface level config but not as per global configuration .
4. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
5. Wait until the recovery-interval expire, and verify that port gets released and port operational state is UP now.
6. Change the global config of those parameters to non-default values.
7. In DUT2, perform port flaps again but not as per globally configured flap-threshold and sampling-interval.
8. Verify that now d1port1 don't get suppressed as the port flaps didn't occur as per the configured values to parameters on the interface.
9. Remove the Link Flap Error Disable config on the interface.
10. Verify that feature is still enabled on the port as the feature is globally enabled/configured. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
11. In DUT2, perform port flaps again but not as per globally configured flap-threshold and sampling-interval.
12. Verify that now d1port1 don't get suppressed as the port flaps occur as per the configured values to parameters at global level. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
13. Verify that after recovery-interval expire port gets released and operational state moved to UP.
14. Remove the global config, check that global config is not reflected on the interfaces and feature is disabled on all interfaces. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.| - -#### 3.2.4 Verify that with Link Flap Error Disable sampling-interval is set to 0, port goes down (or suppressed) when port flaps as per flap-threshold. - -| **Test ID** | **LinkFlapErrorDisable_Func_004** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Verify that with Link Flap Error Disable sampling-interval is set to 0, port goes down (or suppressed) when port flaps as per flap-threshold.** | -| **Test Setup** | **Topology 1** | -| **Type** | **Functional** | -| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) with non-default values for flap-threshold (say 10), recovery-interval(say 10) and sampling-interval set to 0.
2. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold (10 up-to-down events) in 10 seconds.
3. Verify that d1port1 gets suppressed and port operational state moved to Down.
4. Wait until the recovery-interval expire, and verify that port gets released and port operational state is UP now.
5. In DUT2, perform port flaps again as per flap-threshold(10 up-to-down events) in 20 sec.
6. Verify that d1port1 get suppressed and port state moved to operational Down state.
7. Verify that after recovery-interval is over, port operational state moved to UP.| - -#### 3.2.5 Verify that with Link Flap Error Disable recovery-interval is set to 0, port remains in operationally down state until administrator overrides it. - -| **Test ID** | **LinkFlapErrorDisable_Func_005** | -| -------------- | :----------------------------------------------------------- | | **Test Name** | **Verify that with Link Flap Error Disable recovery-interval is set to 0, port remains in operationally down state until administrator overrides it.** | | **Test Setup** | **Topology 1** | | **Type** | **Functional** | | **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) with non-default values for flap-threshold (say 5), recovery-interval(say 10) and sampling-interval (10).
2. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold (5 up-to-down events) in 10 seconds.
3. Verify that d1port1 gets suppressed and port operational state moved to Down.
4. Wait until the recovery-interval (10 sec) expire, and verify that port gets released and port operational state is UP now.
5. Change the recovery-interval to 0. And in DUT2, perform port flaps again as per flap-threshold(5 up-to-down events) in 10 sec.
6. Verify that d1port1 get suppressed and port state moved to operational Down state.
7. Wait for 10 sec, verify that port operational state is still Down.
8. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
9. Perform shut no shut on the interface, and then verify that interface is operationally UP.
10. In DUT2, perform port flaps again as per flap-threshold(5 up-to-down events) in 10 sec.
6. Verify that d1port1 get suppressed and port state moved to operational Down state.
7. Wait for 10 sec, verify that port operational state is still Down.
8. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
9. Remove the Link Flap Error Disable config on the interface, and then verify that interface is operationally UP.| -#### 3.2.6 Verify that with Link Flap Error Disable flap-threshold is set to 1, port goes down (or suppressed) immediately after one port flap (one time up to down). +#### 3.2.4 Verify that with Link Flap Error Disable flap-threshold is set to 1, port goes down (or suppressed) immediately after one port flap (one time up to down). -| **Test ID** | **LinkFlapErrorDisable_Func_006** | +| **Test ID** | **LinkFlapErrorDisable_Func_004** | | -------------- | :----------------------------------------------------------- | | **Test Name** | **Verify that with Link Flap Error Disable flap-threshold is set to 1, port goes down (or suppressed) immediately after one port flap (one time up to down).** | | **Test Setup** | **Topology 1** | | **Type** | **Functional** | | **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) with non-default values for recovery-interval(say 10), sampling-interval (10) and flap-threshold to 1.
2. In DUT2, perform one time port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) in 10 seconds.
3. Verify that d1port1 gets suppressed and port operational state moved to Down.
4. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
5. Wait until the recovery-interval (10 sec) expire, and verify that port gets released and port operational state is UP now.
6. Change flap-threshold to 5. And in DUT2, perform one time port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) in 10 seconds.
7. Verify that d1port1 don't get suppressed and port state not moved to operational Down state.
8. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
9. Wait for 10 sec, verify that port operational state moved to UP.| -#### 3.2.7 Verify that corresponding syslog is generated when port is suppressed or released by Link Flap Error Disable. +#### 3.2.5 Verify that corresponding syslog is generated when port is suppressed or released by Link Flap Error Disable. -| **Test ID** | **LinkFlapErrorDisable_Func_007** | +| **Test ID** | **LinkFlapErrorDisable_Func_005** | | -------------- | :----------------------------------------------------------- | | **Test Name** | **Verify that corresponding syslog is generated when port is suppressed or released by Link Flap Error Disable.** | | **Test Setup** | **Topology 1** | | **Type** | **Functional** | | **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) with non-default values for recovery-interval, sampling-interval and flap-threshold
2. In DUT2, perform one time port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold and sampling interval.
3. Verify that d1port1 gets suppressed and port operational state moved to Down.
4. Verify that in syslog, a proper log message is generated informing the port state going down due to link flap error disable.
5. Wait until the recovery-interval expire, and verify that port gets released and port operational state is UP now.
6. Verify that in syslog, a proper log message is generated informing the port state going up due to link flap error disable recovery-interval expire.| -#### 3.2.8 Verify that after config/un config of Link Flap Error Disable feature on the interface, port gets suppressed/released correctly as per config. +#### 3.2.6 Verify that after config/un config of Link Flap Error Disable feature on the interface, port gets suppressed/released correctly as per config. -| **Test ID** | **LinkFlapErrorDisable_Func_008** | +| **Test ID** | **LinkFlapErrorDisable_Func_006** | | -------------- | :----------------------------------------------------------- | | **Test Name** | **Verify that after config/un config of Link Flap Error Disable feature on the interface, port gets suppressed/released correctly as per config.** | | **Test Setup** | **Topology 1** | | **Type** | **Functional** | | **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) with non-default values for recovery-interval, sampling-interval and flap-threshold
2. In DUT2, perform one time port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold and sampling interval.
3. Verify that d1port1 gets suppressed and port operational state moved to Down.
4. Verify that "show errdisable link-flap" commands shows the correct status for that interface.
5. Wait until the recovery-interval expire, and verify that port gets released and port operational state is UP now.
6. Remove the config on the interface and re configure with same values.
7. Repeat the steps from 2 to 5, check results are same as previous.| -#### 3.2.9 Verify the Port Channel interface (with 2 member ports) status is properly updated when both member ports are suppressed/released by Link Flap Error Disable. +#### 3.2.7 Verify the Port Channel interface (with 2 member ports) status is properly updated when both member ports are suppressed/released by Link Flap Error Disable. -| **Test ID** | **LinkFlapErrorDisable_Func_009** | +| **Test ID** | **LinkFlapErrorDisable_Func_007** | | -------------- | :----------------------------------------------------------- | | **Test Name** | **Verify the Port Channel interface (with 2 member ports) status is properly updated when both member ports are suppressed/released by Link Flap Error Disable.** | | **Test Setup** | **Topology 1** | | **Type** | **Functional** | | **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical ports (d1port1, d1port2 - members of port channel interface) with non-default values for recovery-interval, sampling-interval and flap-threshold
2. In DUT2, perform port flaps (shut/no shut) on the corresponding ports (d2port1, d2port2, that is connected to DUT1 port) as per flap-threshold and sampling interval.
3. Verify that d1port1, d1port2 ports gets suppressed and port operational state moved to Down.
4. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
5. Verify that port channel interface is Down.
6. Wait until the recovery-interval expire, and verify that both the ports gets released and port operational state is UP now.
7. Verify that port channel is UP, and verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
8. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port2, that is connected to DUT1 port) as per flap-threshold and sampling interval.
9. Verify that d1port2 (not d1port1) port gets suppressed and port operational state not moved to Down state as only one port is down.
10. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
11. Verify that port d1port2 is UP after recovery-interval expire and port channel state should not change.
12. Send Learned traffic through this port channel and check that traffic forward successfully and interface counters and port channel counters should updated correctly.| -#### 3.2.10 Verify that on a port routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when that physical port gets suppressed(/released) by Link Flap Error Disable. +#### 3.2.8 Verify that on a port routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when that physical port gets suppressed(/released) by Link Flap Error Disable. -| **Test ID** | **LinkFlapErrorDisable_Func_010** | +| **Test ID** | **LinkFlapErrorDisable_Func_008** | | -------------- | :----------------------------------------------------------- | | **Test Name** | **Verify that on a port routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when that physical port gets suppressed(/released) by Link Flap Error Disable.** | | **Test Setup** | **Topology 1** | | **Type** | **Functional** | | **Steps** | 1. Configure port routing interface between the DUTs with IPv4/IPv6 address.
2. Establish IPv4/IPv6 BGP neighborship.
3. Configure a Ipv4/Ipv6 static route in DUT1 with next hop as port routing interface, check that IPv4/IPv6 route table is updated with this route.
4. configure a loopback interface with IPv4/IPv6 address in DUT2, redistribute it in BGP. Check this IPv4/IPv6 route is learned and updated in DUT1 route table via Vlan routing interface as next hop.
5. Do ping from DUT2 to the IPv4/IPv6 address, check that ARP/ND table updated with egress interface as port routing interface.
6. Send IPv4/IPv6 traffic from TG1 to TG2 such that traffic forwards via port routing interface.
7. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1- member port of that Vlan) with non-default values for recovery-interval, sampling-interval and flap-threshold
8. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1 that is connected to DUT1 port) as per flap-threshold and sampling interval.
9. Verify that d1port1, port gets suppressed and port operational state moved to Down.
10. Verify that "show errdisable link-flap" commands shows the correct status for that interface.
11. In DUT1, verify that port routing interface is Down. Corresponding ARP/ND entries are removed. BGP peers are Down, and corresponding static and dynamic routes are removed from route table.
12. Wait until the recovery-interval expire, and verify that the port gets released and is UP.
13. Verify that "show errdisable link-flap" commands shows the correct status for that interface.
14. In DUT1, verify that port routing interface is UP, corresponding ARP/ND table are updated, BGP peers are UP and route table also updated with static and dynamic routes.
15. Send the traffic again and check that traffic is forwarded successful via port routing interface and check that interface counters also getting updated properly.| -#### 3.2.11 Verify that on a port channel routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when both the member ports gets suppressed(/released) by Link Flap Error Disable. +#### 3.2.9 Verify that on a port channel routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when both the member ports gets suppressed(/released) by Link Flap Error Disable. -| **Test ID** | **LinkFlapErrorDisable_Func_011** | +| **Test ID** | **LinkFlapErrorDisable_Func_009** | | -------------- | :----------------------------------------------------------- | | **Test Name** | **Verify that on a port channel routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when both the member ports gets suppressed(/released) by Link Flap Error Disable.** | | **Test Setup** | **Topology 1** | | **Type** | **Functional** | | **Steps** | 1. Configure port channel (with 2 member ports) routing interface between the DUTs with IPv4/IPv6 address.
2. Establish IPv4/IPv6 BGP neighborship.
3. Configure a Ipv4/Ipv6 static route in DUT1 with next hop as port channel routing interface, check that IPv4/IPv6 route table is updated with this route.
4. configure a loopback interface with IPv4/IPv6 address in DUT2, redistribute it in BGP. Check this IPv4/IPv6 route is learned and updated in DUT1 route table via port channel routing interface as next hop.
5. Do ping from DUT2 to the IPv4/IPv6 address, check that ARP/ND table updated with egress interface as port channel interface.
6. Send IPv4/IPv6 traffic from TG1 to TG2 such that traffic forwards via port channel routing interface.
7. In DUT1, enable/configure the Link Flap Error Disable feature on the physical ports (d1port1, d1port2 - members of port channel interface) with non-default values for recovery-interval, sampling-interval and flap-threshold
8. In DUT2, perform port flaps (shut/no shut) on the corresponding ports (d2port1, d2port2, that is connected to DUT1 port) as per flap-threshold and sampling interval.
9. Verify that d1port1, d1port2 ports gets suppressed and port operational state moved to Down.
10. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
11. In DUT1, verify that port channel routing interface is Down. Corresponding ARP/ND entries are removed. BGP peers are Down, and corresponding static and dynamic routes are removed from route table.
12. Wait until the recovery-interval expire, and verify that both the ports gets released and port operational state is UP now.
13. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
14. In DUT1, verify that port channel routing interface is UP, corresponding ARP/ND table are updated, BGP peers are UP and route table also updated with static and dynamic routes.
15. Send the traffic again and check that traffic is forwarded successful via port channel routing interface.| -#### 3.2.12 Verify that on a Vlan routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when port associated to that Vlan gets suppressed(/released) by Link Flap Error Disable. +#### 3.2.10 Verify that on a Vlan routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when port associated to that Vlan gets suppressed(/released) by Link Flap Error Disable. -| **Test ID** | **LinkFlapErrorDisable_Func_012** | +| **Test ID** | **LinkFlapErrorDisable_Func_010** | | -------------- | :----------------------------------------------------------- | | **Test Name** | **Verify that on a Vlan routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when port associated to that Vlan gets suppressed(/released) by Link Flap Error Disable.** | | **Test Setup** | **Topology 1** | | **Type** | **Functional** | | **Steps** | 1. Configure Vlan routing interface between the DUTs with IPv4/IPv6 address.
2. Establish IPv4/IPv6 BGP neighborship.
3. Configure a Ipv4/Ipv6 static route in DUT1 with next hop as Vlan routing interface, check that IPv4/IPv6 route table is updated with this route.
4. configure a loopback interface with IPv4/IPv6 address in DUT2, redistribute it in BGP. Check this IPv4/IPv6 route is learned and updated in DUT1 route table via Vlan routing interface as next hop.
5. Do ping from DUT2 to the IPv4/IPv6 address, check that ARP/ND table updated with egress interface as Vlan routing interface.
6. Send IPv4/IPv6 traffic from TG1 to TG2 such that traffic forwards via Vlan routing interface.
7. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1- member port of that Vlan) with non-default values for recovery-interval, sampling-interval and flap-threshold
8. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1 that is connected to DUT1 port) as per flap-threshold and sampling interval.
9. Verify that d1port1, port gets suppressed and port operational state moved to Down.
10. Verify that "show errdisable link-flap" commands shows the correct status for that interface.
11. In DUT1, verify that Vlan routing interface is Down. Corresponding ARP/ND entries are removed. BGP peers are Down, and corresponding static and dynamic routes are removed from route table.
12. Wait until the recovery-interval expire, and verify that the port gets released and is UP.
13. Verify that "show errdisable link-flap" commands shows the correct status for that interface.
14. In DUT1, verify that Vlan routing interface is UP, corresponding ARP/ND table are updated, BGP peers are UP and route table also updated with static and dynamic routes.
15. Send the traffic again and check that traffic is forwarded successful via Vlan routing interface and check that interface counters are also getting updated.| -#### 3.2.13 Verify the Vlan Autostate status when vlan member port is suppressed/released by Link Flap Error Disable. +#### 3.2.11 Verify the Vlan Autostate status when vlan member port is suppressed/released by Link Flap Error Disable. -| **Test ID** | **LinkFlapErrorDisable_Func_013** | +| **Test ID** | **LinkFlapErrorDisable_Func_011** | | -------------- | :----------------------------------------------------------- | | **Test Name** | **Verify the Vlan Autostate status when Vlan member port is suppressed/released by Link Flap Error Disable.** | | **Test Setup** | **Topology 1** | | **Type** | **Functional** | | **Steps** | 1. Vlan autostate is enabled by default.
2. Create a Vlan and associate a port (d1port1) to that Vlan, verify Vlan status as active.
3. Enable/Configure Link Flap Error Disable on that port with non-default values for sampling-interval, flap-threshold and recovery-interval.
4. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1 that is connected to DUT1 port) as per flap-threshold and sampling-interval.
5. Verify that d1port1, port gets suppressed and port operational state moved to Down.
6. Verify that "show errdisable link-flap" command shows the correct status for that interface.
7. Verify that corresponding Vlan become in active. Now disable autostate on that port, check that Vlan become active as autostate is disabled.
8. Check that recovery-interval, port is operationally UP and Vlan is active.
9. Re enable autostate and check that vlan status is active only.| -#### 3.2.14 Verify that with different Link Flap Error Disable interface level configs on multiple interfaces, each port gets suppressed/released as per that specific interface configuration. +#### 3.2.12 Verify that with different Link Flap Error Disable interface level configs on multiple interfaces, each port gets suppressed/released as per that specific interface configuration. -| **Test ID** | **LinkFlapErrorDisable_Func_014** | +| **Test ID** | **LinkFlapErrorDisable_Func_012** | | -------------- | :----------------------------------------------------------- | | **Test Name** | **Verify that with different Link Flap Error Disable interface level configs on multiple interfaces, each port gets suppressed/released as per that specific interface configuration.** | | **Test Setup** | **Topology 1** | | **Type** | **Functional** | -| **Steps** | 1. Configure/enable Link Flap Error Disable with different non-default values on multiple interfaces (will try to configure different set of configs on all interfaces (including interface that are not UP) using a range command, if command is available in interface range mode).
2. In DUT2, perform the port flaps (shut/no shut) on the corresponding ports (connected to DUT1 ports) as per the configured flap-threshold and sampling-interval on those corresponding interfaces in DUT1.
3. Verify that ports in DUT1 are moved to down state and the status is updated properly under "show errdisable link-flap" command.
4. Wait until the corresponding recovery-interval of those ports expire, and verify that the port gets released and is UP and link flap error disable status is properly updated under "show errdisable link-flap" command.| +| **Steps** | 1. Configure/enable Link Flap Error Disable with different non-default values on multiple interfaces (configure different set of configs on all interfaces (including interface that are not UP) using a range command).
2. In DUT2, perform the port flaps (shut/no shut) on the corresponding ports (connected to DUT1 ports) as per the configured flap-threshold and sampling-interval on those corresponding interfaces in DUT1.
3. Verify that ports in DUT1 are moved to down state and the status is updated properly under "show errdisable link-flap" command.
4. Wait until the corresponding recovery-interval of those ports expire, and verify that the port gets released and is UP and link flap error disable status is properly updated under "show errdisable link-flap" command.| -#### 3.2.15 Verify the MCLAG state and peer-link state when the peer-link port channel member port is suppressed/released by Link Flap Error Disable. +#### 3.2.13 Verify the MCLAG state and peer-link state when the peer-link port channel member port is suppressed/released by Link Flap Error Disable. -| **Test ID** | **LinkFlapErrorDisable_Func_015** | +| **Test ID** | **LinkFlapErrorDisable_Func_013** | | -------------- | :----------------------------------------------------------- | | **Test Name** | **Verify the MCLAG state and peer-link state when the peer-link port channel member port is suppressed/released by Link Flap Error Disable.** | | **Test Setup** | **Topology 1** | | **Type** | **Functional** | | **Steps** | 1. Configure MCLAG between DUT1-DUT2 with port channel as peer-link with DUT-3 as MCLAG client.
2. In DUT1, enable/configure the Link Flap Error Disable feature on the physical ports (d1port1, d1port2 - members of port channel interface) with non-default values for recovery-interval, sampling-interval and flap-threshold
3. In DUT2, perform port flaps (shut/no shut) on the corresponding ports (d2port1, d2port2, that is connected to DUT1 port) as per flap-threshold and sampling interval.
4. Verify that d1port1, d1port2 ports gets suppressed and port operational state moved to Down.
5. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
6. Verify that port channel interface is Down and the peer-link also operationally down.
7. Wait until the recovery-interval expire, and verify that both the ports gets released and port operational state is UP now.
8. Verify that port channel is UP and peer-link also comes UP.
9. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
10. Check the traffic forwarding after peer-link is UP.| -#### 3.2.16 Verify that with RPVST running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed by Link Flap Error Disabled. +#### 3.2.14 Verify that with RPVST running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed by Link Flap Error Disabled. -| **Test ID** | **LinkFlapErrorDisable_Func_016** | +| **Test ID** | **LinkFlapErrorDisable_Func_014** | | -------------- | :----------------------------------------------------------- | | **Test Name** | **Verify that with RPVST running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed/released by Link Flap Error Disabled.** | | **Test Setup** | **Topology 1** | | **Type** | **Functional** | | **Steps** | 1. Run RPVST between the DUTs after convergence happened, configure/enable Link Flap Error Disable on the designated port on root device/or non-root device having designated port.
2. Perform port flaps from the partner DUT as per configured flap-threshold and sampling-interval.
3. Verify that the designated port gets suppressed by Link Flap Error Disable and port is operationally Down.
4. Verify that STP gets converged accordingly and port states are updated correctly.
5. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
6. After recovery-interval is completed, verify that port gets released and operationally UP.
7. Verify that STP gets converged and port states updated accordingly.
8. Configure/enable Link Flap Error Disable on the Root port on non-root device.
9. Perform port flaps from the partner DUT as per cofnigured flap-threshold and sampling-interval.
10. Verify that the Root port gets suppressed by Link Flap Error Disable and port is operationally Down.
11. Verify that STP gets converged accordingly and port states are updated correctly.
12. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
13. After recovery-interval is completed, verify that port gets released and operationally UP.
14. Verify that STP gets converged and port states updated accordingly.| -#### 3.2.17 Verify that with PVST running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed by Link Flap Error Disabled. +#### 3.2.15 Verify that with PVST running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed by Link Flap Error Disabled. -| **Test ID** | **LinkFlapErrorDisable_Func_017** | +| **Test ID** | **LinkFlapErrorDisable_Func_015** | | -------------- | :----------------------------------------------------------- | | **Test Name** | **Verify that with PVST running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed/released by Link Flap Error Disabled.** | | **Test Setup** | **Topology 1** | | **Type** | **Functional** | | **Steps** | 1. Run PVST between the DUTs after convergence happened, configure/enable Link Flap Error Disable on the designated port on root device/or non-root device having designated port.
2. Perform port flaps from the partner DUT as per configured flap-threshold and sampling-interval.
3. Verify that the designated port gets suppressed by Link Flap Error Disable and port is operationally Down.
4. Verify that STP gets converged accordingly and port states are updated correctly.
5. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
6. After recovery-interval is completed, verify that port gets released and operationally UP.
7. Verify that STP gets converged and port states updated accordingly.
8. Configure/enable Link Flap Error Disable on the Root port on non-root device.
9. Perform port flaps from the partner DUT as per configured flap-threshold and sampling-interval.
10. Verify that the Root port gets suppressed by Link Flap Error Disable and port is operationally Down.
11. Verify that STP gets converged accordingly and port states are updated correctly.
12. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
13. After recovery-interval is completed, verify that port gets released and operationally UP.
14. Verify that STP gets converged and port states updated accordingly.| -#### 3.2.18 Verify that with MSTP running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed by Link Flap Error Disabled. +#### 3.2.16 Verify that with MSTP running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed by Link Flap Error Disabled. -| **Test ID** | **LinkFlapErrorDisable_Func_018** | +| **Test ID** | **LinkFlapErrorDisable_Func_016** | | -------------- | :----------------------------------------------------------- | | **Test Name** | **Verify that with MSTP running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed/released by Link Flap Error Disabled.** | | **Test Setup** | **Topology 1** | | **Type** | **Functional** | | **Steps** | 1. Run MSTP between the DUTs after convergence happened, configure/enable Link Flap Error Disable on the designated port on root device/or non-root device having designated port.
2. Perform port flaps from the partner DUT as per configured flap-threshold and sampling-interval.
3. Verify that the designated port gets suppressed by Link Flap Error Disable and port is operationally Down.
4. Verify that STP gets converged accordingly and port states are updated correctly.
5. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
6. After recovery-interval is completed, verify that port gets released and operationally UP.
7. Verify that STP gets converged and port states updated accordingly.
8. Configure/enable Link Flap Error Disable on the Root port on non-root device.
9. Perform port flaps from the partner DUT as per configured flap-threshold and sampling-interval.
10. Verify that the Root port gets suppressed by Link Flap Error Disable and port is operationally Down.
11. Verify that STP gets converged accordingly and port states are updated correctly.
12. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
13. After recovery-interval is completed, verify that port gets released and operationally UP.
14. Verify that STP gets converged and port states updated accordingly.| -#### 3.2.19 Verify the UDLD state update correctly after port gets suppressed and released by the Link Flap Error Disable. +#### 3.2.17 Verify the UDLD state update correctly after port gets suppressed and released by the Link Flap Error Disable. -| **Test ID** | **LinkFlapErrorDisable_Func_019** | +| **Test ID** | **LinkFlapErrorDisable_Func_017** | | -------------- | :----------------------------------------------------------- | | **Test Name** | **Verify the UDLD state update correctly after port gets suppressed and released by the Link Flap Error Disable.** | | **Test Setup** | **Topology 1** | | **Type** | **Functional** | | **Steps** | 1. In both DUTs, configure UDLD on the physical port connecting the DUTs, check that UDLD status is updated as Bidirectional.
2. In DUT1, Configure Link Flap Error Disable on that port.
3. From DUT2, perform port flaps as per the configured flap-threshold and sampling-interval.
4. Verify that port in DUT1 gets suppressed and operational state moved to Down, and UDLD state is updated as undetermined.
5. After recovery-interval is over, verify that port gets released and operational state moved to UP and also check that UDLD state is updated as Bidirectional.
6. In DUT2, do 'ifconfig down' and check the UDLD status in DUT1 is updated as unidirectional.
7. Do 'ifconfig up' and check the UDLD status in DUT1 is updated as bidirectional.| -#### 3.2.20 Verify the MAC learning and L2 traffic forwarding after port is suppressed and released by Link Flap Error Disable. +#### 3.2.18 Verify the MAC learning and L2 traffic forwarding after port is suppressed and released by Link Flap Error Disable. -| **Test ID** | **LinkFlapErrorDisable_Func_020** | +| **Test ID** | **LinkFlapErrorDisable_Func_018** | | -------------- | :----------------------------------------------------------- | | **Test Name** | **Verify the MAC learning and L2 traffic forwarding after port is suppressed and released by Link Flap Error Disable.** | | **Test Setup** | **Topology 1** | | **Type** | **Functional** | | **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) with default values for flap-threshold, sampling-interval and recovery-interval.
2.Send L2 learned traffic between TG ports, check that MAC is learned on d1port1 in DUT1 and traffic is forwarded successfully.
3. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold and sampling-interval configured on d1port1.
3. Verify that d1port1 gets suppressed and port operational state moved to Down. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
4. Verify that MAC entries related to this port also removed from FDB table.
5. Wait until the recovery-interval expire, and verify that port gets released and port operational state is UP now.
6. Send the traffic again and check the MAC learning and traffic forwarding and also check that inter counters on this port are getting updated properly.| -#### 3.2.21 Verify the port operational state after continuous port flaps for two consecutive recovery-interval (non-default value). +#### 3.2.19 Verify the port operational state after continuous port flaps for two consecutive recovery-interval (non-default value). -| **Test ID** | **LinkFlapErrorDisable_Func_021** | +| **Test ID** | **LinkFlapErrorDisable_Func_019** | | -------------- | :----------------------------------------------------------- | | **Test Name** | **Verify the port operational state after continuous port flaps for two consecutive recovery-interval (non-default value).** | | **Test Setup** | **Topology 1** | | **Type** | **Functional** | | **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) with default values for flap-threshold (5), sampling-interval (10) and recovery-interval (60 s).
2. In DUT2, perform continuous port flaps (shut/no shut) for 120sec on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold and sampling-interval configured on d1port1.
3. Verify that in DUT1, d1port1 gets repeatedly suppressed and released and finally in suppressed state after completion of port flaps. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
4. Wait until the final recovery-interval expire, and verify that port gets released and port operational state is UP now.
5. Send the traffic and check traffic forwarding.| -#### 3.2.22 Verify the port state after warm boot, when warm boot performed with the port is in suppressed state with non zero recovery-interval greater than warm boot time. +#### 3.2.20 Verify the port state after warm boot, when warm boot performed with the port is in suppressed state with non zero recovery-interval greater than warm boot time. -| **Test ID** | **LinkFlapErrorDisable_Func_022** | +| **Test ID** | **LinkFlapErrorDisable_Func_020** | | -------------- | :----------------------------------------------------------- | | **Test Name** | **Verify the port state after warm boot, when warm boot performed with the port is in suppressed state with non zero recovery-interval greater than warm boot time.** | | **Test Setup** | **Topology 1** | | **Type** | **Functional** | | **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical ports (d1port1, d1port2, d1port3. d1port2,d2port3 are port channel member ports) with default values for flap-threshold (5), sampling-interval (10) and recovery-interval (600 s).
2. In DUT2, perform port flaps (shut/no shut) on the corresponding ports (that are connected to DUT1 port) as per flap-threshold and sampling-interval.
3. Verify that in DUT1, these ports gets suppressed and port states moved to Down state and port channel also Down. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
4. Before recovery-interval expire, perform warm boot.
5. After DUT comes UP (considering warm boot completed in 300 sec) check the link flap error disable status under "show errdisable link-flap" command, as warm boot completed before recovery-interval, ports should still be suppressed state and operational state should be down.
6. After recovery-interval expire, and verify that ports gets released and ports operational state is UP and port channel state also UP.| -#### 3.2.23 Verify the port state after warm boot, when warm boot is performed with the port is in suppressed state with non zero recovery-interval less than warm boot time. +#### 3.2.21 Verify the port state after warm boot, when warm boot is performed with the port is in suppressed state with non zero recovery-interval less than warm boot time. -| **Test ID** | **LinkFlapErrorDisable_Func_023** | +| **Test ID** | **LinkFlapErrorDisable_Func_021** | | -------------- | :----------------------------------------------------------- | | **Test Name** | **Verify the port state after warm boot, when warm boot is performed with the port is in suppressed state with non zero recovery-interval less than warm boot time.** | | **Test Setup** | **Topology 1** | | **Type** | **Functional** | | **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical ports (d1port1, d1port2, d1port3. d1port2,d2port3 are port channel member ports) with default values for flap-threshold (5), sampling-interval (10) and recovery-interval (60 s).
2. In DUT2, perform port flaps (shut/no shut) on the corresponding ports (that are connected to DUT1 port) as per flap-threshold and sampling-interval.
3. Verify that in DUT1, these ports gets suppressed and port states moved to Down state and port channel also Down. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
4. Before recovery-interval expire, perform warm boot.
5. After DUT comes UP (considering warm boot completed in 300 sec) check the link flap error disable status under "show errdisable link-flap" command, as recovery-interval expire during warm boot, ports should still be in released state and operational state should be UP and Port channel also should UP.| -#### 3.2.24 Verify that port state gets suppressed and released as per config after Save Reboot and Fast boot. +#### 3.2.22 Verify that port state gets suppressed and released as per config after Save Reboot and Fast boot. -| **Test ID** | **LinkFlapErrorDisable_Func_024** | +| **Test ID** | **LinkFlapErrorDisable_Func_022** | | -------------- | :----------------------------------------------------------- | | **Test Name** | **Verify that port state gets suppressed and released as per config after Save Reboot and Fast boot.** | | **Test Setup** | **Topology 1** | | **Type** | **Functional** | | **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical ports (d1port1, d1port2, d1port3. d1port2,d2port3 are port channel member ports) with default values for flap-threshold, sampling-interval and recovery-interval. Perform Save and Reboot in DUT1.
2. After DUT1 comes UP, in DUT2, perform port flaps (shut/no shut) for 120sec on the corresponding ports (that are connected to DUT1 port) as per flap-threshold and sampling-interval.
3. Verify that in DUT1, these ports gets suppressed and port states moved to Down state and port channel also Down. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
4. After recovery-interval expire, check the link flap error disable status under "show errdisable link-flap" command, as recovery-interval expire during warm boot, ports should be released state and operational state should be UP and Port channel also should UP.
5. Repeat the same steps after performing Fast boot in DUT1.| -#### 3.2.25 Verify that there is no memory leak with Link Flap Error Disable feature enabled and continuous port flaps are performed on the interface. +#### 3.2.23 Verify that there is no memory leak with Link Flap Error Disable feature enabled and continuous port flaps are performed on the interface. -| **Test ID** | **LinkFlapErrorDisable_Func_025** | +| **Test ID** | **LinkFlapErrorDisable_Func_023** | | -------------- | :----------------------------------------------------------- | | **Test Name** | **Verify that there is not memory leak with Link Flap Error Disable feature enabled and continuous port flaps are performed on the interface.** | | **Test Setup** | **Topology 1** | @@ -346,7 +326,7 @@ Topology Description - #### 3.3.1 Verify that user should not be allowed to configure the Link Flap Error Disable on port channel interface and Vlan interfaces. -| **Test ID** | **LinkFlapErrorDisable_Func_026** | +| **Test ID** | **LinkFlapErrorDisable_Func_024** | | -------------- | :----------------------------------------------------------- | | **Test Name** | **Verify that user should not be allowed to configure the Link Flap Error Disable on port channel interface and Vlan interfaces.** | | **Test Setup** | **Topology 1** | @@ -359,7 +339,7 @@ Topology Description - ##### 3.4.1.1 Verify the Link Flap Error Disable feature via REST. -| **Test ID** | **LinkFlapErrorDisable_Func_027** | +| **Test ID** | **LinkFlapErrorDisable_Func_025** | | -------------- | ------------------------------------------------------------ | | **Test Name** | **Verify the Link Flap Error Disable feature via REST.** | | **Test Setup** | **Topology 1** | From e7f662cb4cf22ae199a53b4df5efc7d4cb5f15a7 Mon Sep 17 00:00:00 2001 From: KeshavKa Date: Sun, 27 Jun 2021 20:08:18 -0700 Subject: [PATCH 3/4] modified tests to ceover new changes in HLD --- ..._4_0_0_Link_Flap_Error_Disable_Testplan.md | 719 +++++++++--------- 1 file changed, 369 insertions(+), 350 deletions(-) diff --git a/TestPlans/system/Link_Flap_Error_Disable/SONIC_4_0_0_Link_Flap_Error_Disable_Testplan.md b/TestPlans/system/Link_Flap_Error_Disable/SONIC_4_0_0_Link_Flap_Error_Disable_Testplan.md index 75d8e421cfb7..1e67a7705434 100644 --- a/TestPlans/system/Link_Flap_Error_Disable/SONIC_4_0_0_Link_Flap_Error_Disable_Testplan.md +++ b/TestPlans/system/Link_Flap_Error_Disable/SONIC_4_0_0_Link_Flap_Error_Disable_Testplan.md @@ -1,351 +1,370 @@ -# SQA Test Plan -# Link Flap Error Disable -# SONiC 4.0.0 Release - -## Test Plan Revision History - -| Rev | Date | Author | Change Description | -| ---- | ---------- | --------------- | ------------------ | -| 0.1 | 5/28/2021 | Kesava Swamy K | Initial Version | -| 0.2 | 5/31/2021 | | Removed unsupported tests as per latest update in HLD | - -## List of Reviewers - -| Function | Name | -| :------: | :--: | -| QA | Chandra Bhushan Singh | -| DEV | Steven Lu | - -## List of Approvers - -| Function | Name | Date Approved | -| :------: | :--: | :-----------: | -| | | | - -## Definition/Abbreviation - -| **Term** | **Meaning** | -| -------- | -------------------------- | -| | | - -## Feature Overview - - The Port Link Flap Error Disable feature prevent excessive interface flapping events from adversely affecting routing protocols and routing tables in the network. Suppressing port state change events to protect the system resources. More details in HLD. - -## 1 Test Focus Areas - -### 1.1 CLI Testing - - - Validation of CLI config command "link-error-disable flap-threshold sampling-interval recovery-interval" to configure the feature on interface level. - - Validation of CLI config command "link-error-disable flap-threshold sampling-interval recovery-interval" to enable the feature on interface range mode. - - Validation of CLI show command "show errdisable link-flap" and "show errdisable recovery". - -### 1.2 Functional Testing - - - Verify that with Link Flap Error Disable default config on that physical interface, port goes down (or suppressed) when port flaps occur and comes up(or released ) after recovery-interval expire. - - Verify that with Link Flap Error Disable non-default config on that physical interface, port goes down (or suppressed) when port flaps occur and comes up(or released ) after recovery-interval expire. - - Verify that with Link Flap Error Disable recovery-interval is set to 0, port remains in operationally down state until administrator overrides it. - - Verify that with Link Flap Error Disable flap-threshold is set to 1, port goes down (or suppressed) immediately after one port flap (one time up to down). - - Verify that corresponding syslog is generated when port is suppressed or released by Link Flap Error Disable. - - Verify that after config/un config of Link Flap Error Disable feature on the interface, port gets suppressed/released correctly as per config. - - Verify the Port Channel interface (with 2 member ports) status is properly updated when both member ports are suppressed/released by Link Flap Error Disable. - - Verify that on a port routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when the port gets suppressed(/released) by Link Flap Error Disable. - - Verify that on a port channel routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when both the member ports gets suppressed(/released) by Link Flap Error Disable. - - Verify that on a Vlan routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when port associated to that Vlan gets suppressed(/released) by Link Flap Error Disable. - - Verify the Vlan Autostate status when Vlan member port is suppressed/released by Link Flap Error Disable. - - Verify that with different Link Flap Error Disable interface level configs on multiple interfaces, each port gets suppressed/released as per that specific interface configuration. - - Verify the MCLAG state and peer-link state when the peer-link port channel member port is suppressed/released by Link Flap Error Disable. - - Verify that with RPVST running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed by Link Flap Error Disabled. - - Verify that with PVST running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed by Link Flap Error Disabled. - - Verify that with MSTP running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed by Link Flap Error Disabled. - - Verify the UDLD state update accordingly when the port gets suppressed or released by the Link Flap Error Disable. - - Verify the MAC learning and L2 traffic forwarding after port is suppressed and released by Link Flap Error Disable. - - Verify the port operational state after continuous port flaps for two consecutive recovery-interval (non-default value). - - Verify the port state after warm boot, with warm boot is performed when the port is in suppressed state with non zero recovery-interval greater than warm boot time. - - Verify the port state after warm boot, with warm boot is performed when the port is in suppressed state with non zero recovery-interval less than warm boot time. - - Verify the Link Flap Error Disable functionality after Reboot/FastReboot. - - Verify that there is no memory leak with Link Flap Error Disable feature enabled and continuous port flaps are performed on the interface. - - Verify that user should not be allowed to configure the Link Flap Error Disable on port channel interface and vlan interfaces. - - Verify the Link Flap Error Disable feature via REST. - - -## 2 Topologies - - ![Topology](LinkFlapErrorDisable.png "Figure: Topology 1") - -#### Topology 1 -Topology Description - - - Minimum 4 back to back links are required between DUT1-DUT2, and these links will be used as physical ports, or Vlan associated ports or port channel interfaces based on the test case requirement. - - In case of L3 traffic related test, corresponding dynamic protocol or static routes will be configured. - - For MCLAG peer-link port state validation after Link Flap Error Disable, DUT3 will be sued as MCLAG client, and corresponding MCLAG port channel and other client Vlan will be configured in the respective test cases. - -## 3 Test Case and objectives - -### 3.1 CLI Test Cases - -#### 3.1.1 Validate CLI config command "link-error-disable flap-threshold sampling-interval recovery-interval" to configure the feature on interface level. - -| **Test ID** | **LinkFlapErrorDisable_CLI_001** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Validate CLI command "link-error-disable flap-threshold sampling-interval recovery-interval" to configure the feature on interface level.** | -| **Test Setup** | **Topology 1** | -| **Type** | **CLI** | -| **Steps** | 1. Validate CLI options for command "link-error-disable flap-threshold sampling-interval recovery-interval" interface level".
2. Check the running-config is updated correctly.| - - -#### 3.1.2 Validate CLI command "link-error-disable flap-threshold sampling-interval recovery-interval" to configure the feature on interface range mode. - -| **Test ID** | **LinkFlapErrorDisable_CLI_002** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Validate CLI command "link-error-disable flap-threshold sampling-interval recovery-interval" to configure the feature on interface range mode.**| -| **Test Setup** | **Topology 1** | -| **Type** | **CLI** | -| **Steps** | 1. Validate CLI options for command "link-error-disable flap-threshold sampling-interval recovery-interval" to configure the feature on interface range mode.
2. Check the running-config is updated correctly.| - - -#### 3.1.3 Validation of CLI show command "show errdisable link-flap" and "show errdisable recovery". - -| **Test ID** | **LinkFlapErrorDisable_CLI_003** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Validation of CLI show command "show errdisable link-flap" and "show errdisable recovery".**| -| **Test Setup** | **Topology 1** | -| **Type** | **CLI** | -| **Steps** | 1. Validate CLI options for show commands "show errdisable link-flap" and "show errdisable recovery".| - - -### 3.2 Functional Test Cases - -#### 3.2.1 Verify that with Link Flap Error Disable default config on that physical interface, port goes down (or suppressed) when port flaps occur and comes up(or released ) after recovery-interval expire. - -| **Test ID** | **LinkFlapErrorDisable_Func_001** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Verify that with Link Flap Error Disable default config on that physical interface, port goes down (or suppressed) when port flaps occur and comes up(or released ) after recovery-interval expire.** | -| **Test Setup** | **Topology 1** | -| **Type** | **Functional** | -| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) with default values for flap-threshold, sampling-interval and recovery-interval.
2. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold and sampling-interval configured on d1port1.
3. Verify that d1port1 gets suppressed and port operational state moved to Down. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
4. Wait until the recovery-interval expire, and verify that port gets released and port operational state is UP now. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
5. In DUT2, perform port flaps again but not as per flap-threshold and sampling-interval configured on d1port1.
6. Verify that now d1port1 don't get suppressed as the port flaps didn't occur as per the default config parameters. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.| - -#### 3.2.2 Verify that with Link Flap Error Disable non-default config on that physical interface, port goes down (or suppressed) when port flaps occur and comes up(or released ) after recovery-interval expire. - -| **Test ID** | **LinkFlapErrorDisable_Func_002** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Verify that with Link Flap Error Disable non-default config on that physical interface, port goes down (or suppressed) when port flaps occur and comes up(or released ) after recovery-interval expire.** | -| **Test Setup** | **Topology 1** | -| **Type** | **Functional** | -| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) and configure non-default values for flap-threshold, sampling-interval and recovery-interval.
2. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold and sampling-interval configured on d1port1.
3. Verify that d1port1 gets suppressed and port operational state moved to Down. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
4. Wait until the recovery-interval expire, and verify that port gets released and port operational state is UP now. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
5. In DUT2, perform port flaps again but not as per flap-threshold and sampling-interval configured on d1port1.
6. Verify that now d1port1 don't get suppressed as the port flaps didn't occur as per the configured values to parameters. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.| - -#### 3.2.3 Verify that with Link Flap Error Disable recovery-interval is set to 0, port remains in operationally down state until administrator overrides it. - -| **Test ID** | **LinkFlapErrorDisable_Func_003** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Verify that with Link Flap Error Disable recovery-interval is set to 0, port remains in operationally down state until administrator overrides it.** | -| **Test Setup** | **Topology 1** | -| **Type** | **Functional** | -| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) with non-default values for flap-threshold (say 5), recovery-interval(say 10) and sampling-interval (10).
2. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold (5 up-to-down events) in 10 seconds.
3. Verify that d1port1 gets suppressed and port operational state moved to Down.
4. Wait until the recovery-interval (10 sec) expire, and verify that port gets released and port operational state is UP now.
5. Change the recovery-interval to 0. And in DUT2, perform port flaps again as per flap-threshold(5 up-to-down events) in 10 sec.
6. Verify that d1port1 get suppressed and port state moved to operational Down state.
7. Wait for 10 sec, verify that port operational state is still Down.
8. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
9. Perform shut no shut on the interface, and then verify that interface is operationally UP.
10. In DUT2, perform port flaps again as per flap-threshold(5 up-to-down events) in 10 sec.
6. Verify that d1port1 get suppressed and port state moved to operational Down state.
7. Wait for 10 sec, verify that port operational state is still Down.
8. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
9. Remove the Link Flap Error Disable config on the interface, and then verify that interface is operationally UP.| - -#### 3.2.4 Verify that with Link Flap Error Disable flap-threshold is set to 1, port goes down (or suppressed) immediately after one port flap (one time up to down). - -| **Test ID** | **LinkFlapErrorDisable_Func_004** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Verify that with Link Flap Error Disable flap-threshold is set to 1, port goes down (or suppressed) immediately after one port flap (one time up to down).** | -| **Test Setup** | **Topology 1** | -| **Type** | **Functional** | -| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) with non-default values for recovery-interval(say 10), sampling-interval (10) and flap-threshold to 1.
2. In DUT2, perform one time port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) in 10 seconds.
3. Verify that d1port1 gets suppressed and port operational state moved to Down.
4. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
5. Wait until the recovery-interval (10 sec) expire, and verify that port gets released and port operational state is UP now.
6. Change flap-threshold to 5. And in DUT2, perform one time port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) in 10 seconds.
7. Verify that d1port1 don't get suppressed and port state not moved to operational Down state.
8. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
9. Wait for 10 sec, verify that port operational state moved to UP.| - -#### 3.2.5 Verify that corresponding syslog is generated when port is suppressed or released by Link Flap Error Disable. - -| **Test ID** | **LinkFlapErrorDisable_Func_005** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Verify that corresponding syslog is generated when port is suppressed or released by Link Flap Error Disable.** | -| **Test Setup** | **Topology 1** | -| **Type** | **Functional** | -| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) with non-default values for recovery-interval, sampling-interval and flap-threshold
2. In DUT2, perform one time port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold and sampling interval.
3. Verify that d1port1 gets suppressed and port operational state moved to Down.
4. Verify that in syslog, a proper log message is generated informing the port state going down due to link flap error disable.
5. Wait until the recovery-interval expire, and verify that port gets released and port operational state is UP now.
6. Verify that in syslog, a proper log message is generated informing the port state going up due to link flap error disable recovery-interval expire.| - -#### 3.2.6 Verify that after config/un config of Link Flap Error Disable feature on the interface, port gets suppressed/released correctly as per config. - -| **Test ID** | **LinkFlapErrorDisable_Func_006** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Verify that after config/un config of Link Flap Error Disable feature on the interface, port gets suppressed/released correctly as per config.** | -| **Test Setup** | **Topology 1** | -| **Type** | **Functional** | -| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) with non-default values for recovery-interval, sampling-interval and flap-threshold
2. In DUT2, perform one time port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold and sampling interval.
3. Verify that d1port1 gets suppressed and port operational state moved to Down.
4. Verify that "show errdisable link-flap" commands shows the correct status for that interface.
5. Wait until the recovery-interval expire, and verify that port gets released and port operational state is UP now.
6. Remove the config on the interface and re configure with same values.
7. Repeat the steps from 2 to 5, check results are same as previous.| - -#### 3.2.7 Verify the Port Channel interface (with 2 member ports) status is properly updated when both member ports are suppressed/released by Link Flap Error Disable. - -| **Test ID** | **LinkFlapErrorDisable_Func_007** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Verify the Port Channel interface (with 2 member ports) status is properly updated when both member ports are suppressed/released by Link Flap Error Disable.** | -| **Test Setup** | **Topology 1** | -| **Type** | **Functional** | -| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical ports (d1port1, d1port2 - members of port channel interface) with non-default values for recovery-interval, sampling-interval and flap-threshold
2. In DUT2, perform port flaps (shut/no shut) on the corresponding ports (d2port1, d2port2, that is connected to DUT1 port) as per flap-threshold and sampling interval.
3. Verify that d1port1, d1port2 ports gets suppressed and port operational state moved to Down.
4. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
5. Verify that port channel interface is Down.
6. Wait until the recovery-interval expire, and verify that both the ports gets released and port operational state is UP now.
7. Verify that port channel is UP, and verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
8. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port2, that is connected to DUT1 port) as per flap-threshold and sampling interval.
9. Verify that d1port2 (not d1port1) port gets suppressed and port operational state not moved to Down state as only one port is down.
10. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
11. Verify that port d1port2 is UP after recovery-interval expire and port channel state should not change.
12. Send Learned traffic through this port channel and check that traffic forward successfully and interface counters and port channel counters should updated correctly.| - -#### 3.2.8 Verify that on a port routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when that physical port gets suppressed(/released) by Link Flap Error Disable. - -| **Test ID** | **LinkFlapErrorDisable_Func_008** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Verify that on a port routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when that physical port gets suppressed(/released) by Link Flap Error Disable.** | -| **Test Setup** | **Topology 1** | -| **Type** | **Functional** | -| **Steps** | 1. Configure port routing interface between the DUTs with IPv4/IPv6 address.
2. Establish IPv4/IPv6 BGP neighborship.
3. Configure a Ipv4/Ipv6 static route in DUT1 with next hop as port routing interface, check that IPv4/IPv6 route table is updated with this route.
4. configure a loopback interface with IPv4/IPv6 address in DUT2, redistribute it in BGP. Check this IPv4/IPv6 route is learned and updated in DUT1 route table via Vlan routing interface as next hop.
5. Do ping from DUT2 to the IPv4/IPv6 address, check that ARP/ND table updated with egress interface as port routing interface.
6. Send IPv4/IPv6 traffic from TG1 to TG2 such that traffic forwards via port routing interface.
7. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1- member port of that Vlan) with non-default values for recovery-interval, sampling-interval and flap-threshold
8. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1 that is connected to DUT1 port) as per flap-threshold and sampling interval.
9. Verify that d1port1, port gets suppressed and port operational state moved to Down.
10. Verify that "show errdisable link-flap" commands shows the correct status for that interface.
11. In DUT1, verify that port routing interface is Down. Corresponding ARP/ND entries are removed. BGP peers are Down, and corresponding static and dynamic routes are removed from route table.
12. Wait until the recovery-interval expire, and verify that the port gets released and is UP.
13. Verify that "show errdisable link-flap" commands shows the correct status for that interface.
14. In DUT1, verify that port routing interface is UP, corresponding ARP/ND table are updated, BGP peers are UP and route table also updated with static and dynamic routes.
15. Send the traffic again and check that traffic is forwarded successful via port routing interface and check that interface counters also getting updated properly.| - -#### 3.2.9 Verify that on a port channel routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when both the member ports gets suppressed(/released) by Link Flap Error Disable. - -| **Test ID** | **LinkFlapErrorDisable_Func_009** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Verify that on a port channel routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when both the member ports gets suppressed(/released) by Link Flap Error Disable.** | -| **Test Setup** | **Topology 1** | -| **Type** | **Functional** | -| **Steps** | 1. Configure port channel (with 2 member ports) routing interface between the DUTs with IPv4/IPv6 address.
2. Establish IPv4/IPv6 BGP neighborship.
3. Configure a Ipv4/Ipv6 static route in DUT1 with next hop as port channel routing interface, check that IPv4/IPv6 route table is updated with this route.
4. configure a loopback interface with IPv4/IPv6 address in DUT2, redistribute it in BGP. Check this IPv4/IPv6 route is learned and updated in DUT1 route table via port channel routing interface as next hop.
5. Do ping from DUT2 to the IPv4/IPv6 address, check that ARP/ND table updated with egress interface as port channel interface.
6. Send IPv4/IPv6 traffic from TG1 to TG2 such that traffic forwards via port channel routing interface.
7. In DUT1, enable/configure the Link Flap Error Disable feature on the physical ports (d1port1, d1port2 - members of port channel interface) with non-default values for recovery-interval, sampling-interval and flap-threshold
8. In DUT2, perform port flaps (shut/no shut) on the corresponding ports (d2port1, d2port2, that is connected to DUT1 port) as per flap-threshold and sampling interval.
9. Verify that d1port1, d1port2 ports gets suppressed and port operational state moved to Down.
10. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
11. In DUT1, verify that port channel routing interface is Down. Corresponding ARP/ND entries are removed. BGP peers are Down, and corresponding static and dynamic routes are removed from route table.
12. Wait until the recovery-interval expire, and verify that both the ports gets released and port operational state is UP now.
13. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
14. In DUT1, verify that port channel routing interface is UP, corresponding ARP/ND table are updated, BGP peers are UP and route table also updated with static and dynamic routes.
15. Send the traffic again and check that traffic is forwarded successful via port channel routing interface.| - -#### 3.2.10 Verify that on a Vlan routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when port associated to that Vlan gets suppressed(/released) by Link Flap Error Disable. - -| **Test ID** | **LinkFlapErrorDisable_Func_010** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Verify that on a Vlan routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when port associated to that Vlan gets suppressed(/released) by Link Flap Error Disable.** | -| **Test Setup** | **Topology 1** | -| **Type** | **Functional** | -| **Steps** | 1. Configure Vlan routing interface between the DUTs with IPv4/IPv6 address.
2. Establish IPv4/IPv6 BGP neighborship.
3. Configure a Ipv4/Ipv6 static route in DUT1 with next hop as Vlan routing interface, check that IPv4/IPv6 route table is updated with this route.
4. configure a loopback interface with IPv4/IPv6 address in DUT2, redistribute it in BGP. Check this IPv4/IPv6 route is learned and updated in DUT1 route table via Vlan routing interface as next hop.
5. Do ping from DUT2 to the IPv4/IPv6 address, check that ARP/ND table updated with egress interface as Vlan routing interface.
6. Send IPv4/IPv6 traffic from TG1 to TG2 such that traffic forwards via Vlan routing interface.
7. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1- member port of that Vlan) with non-default values for recovery-interval, sampling-interval and flap-threshold
8. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1 that is connected to DUT1 port) as per flap-threshold and sampling interval.
9. Verify that d1port1, port gets suppressed and port operational state moved to Down.
10. Verify that "show errdisable link-flap" commands shows the correct status for that interface.
11. In DUT1, verify that Vlan routing interface is Down. Corresponding ARP/ND entries are removed. BGP peers are Down, and corresponding static and dynamic routes are removed from route table.
12. Wait until the recovery-interval expire, and verify that the port gets released and is UP.
13. Verify that "show errdisable link-flap" commands shows the correct status for that interface.
14. In DUT1, verify that Vlan routing interface is UP, corresponding ARP/ND table are updated, BGP peers are UP and route table also updated with static and dynamic routes.
15. Send the traffic again and check that traffic is forwarded successful via Vlan routing interface and check that interface counters are also getting updated.| - -#### 3.2.11 Verify the Vlan Autostate status when vlan member port is suppressed/released by Link Flap Error Disable. - -| **Test ID** | **LinkFlapErrorDisable_Func_011** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Verify the Vlan Autostate status when Vlan member port is suppressed/released by Link Flap Error Disable.** | -| **Test Setup** | **Topology 1** | -| **Type** | **Functional** | -| **Steps** | 1. Vlan autostate is enabled by default.
2. Create a Vlan and associate a port (d1port1) to that Vlan, verify Vlan status as active.
3. Enable/Configure Link Flap Error Disable on that port with non-default values for sampling-interval, flap-threshold and recovery-interval.
4. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1 that is connected to DUT1 port) as per flap-threshold and sampling-interval.
5. Verify that d1port1, port gets suppressed and port operational state moved to Down.
6. Verify that "show errdisable link-flap" command shows the correct status for that interface.
7. Verify that corresponding Vlan become in active. Now disable autostate on that port, check that Vlan become active as autostate is disabled.
8. Check that recovery-interval, port is operationally UP and Vlan is active.
9. Re enable autostate and check that vlan status is active only.| - -#### 3.2.12 Verify that with different Link Flap Error Disable interface level configs on multiple interfaces, each port gets suppressed/released as per that specific interface configuration. - -| **Test ID** | **LinkFlapErrorDisable_Func_012** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Verify that with different Link Flap Error Disable interface level configs on multiple interfaces, each port gets suppressed/released as per that specific interface configuration.** | -| **Test Setup** | **Topology 1** | -| **Type** | **Functional** | -| **Steps** | 1. Configure/enable Link Flap Error Disable with different non-default values on multiple interfaces (configure different set of configs on all interfaces (including interface that are not UP) using a range command).
2. In DUT2, perform the port flaps (shut/no shut) on the corresponding ports (connected to DUT1 ports) as per the configured flap-threshold and sampling-interval on those corresponding interfaces in DUT1.
3. Verify that ports in DUT1 are moved to down state and the status is updated properly under "show errdisable link-flap" command.
4. Wait until the corresponding recovery-interval of those ports expire, and verify that the port gets released and is UP and link flap error disable status is properly updated under "show errdisable link-flap" command.| - -#### 3.2.13 Verify the MCLAG state and peer-link state when the peer-link port channel member port is suppressed/released by Link Flap Error Disable. - -| **Test ID** | **LinkFlapErrorDisable_Func_013** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Verify the MCLAG state and peer-link state when the peer-link port channel member port is suppressed/released by Link Flap Error Disable.** | -| **Test Setup** | **Topology 1** | -| **Type** | **Functional** | -| **Steps** | 1. Configure MCLAG between DUT1-DUT2 with port channel as peer-link with DUT-3 as MCLAG client.
2. In DUT1, enable/configure the Link Flap Error Disable feature on the physical ports (d1port1, d1port2 - members of port channel interface) with non-default values for recovery-interval, sampling-interval and flap-threshold
3. In DUT2, perform port flaps (shut/no shut) on the corresponding ports (d2port1, d2port2, that is connected to DUT1 port) as per flap-threshold and sampling interval.
4. Verify that d1port1, d1port2 ports gets suppressed and port operational state moved to Down.
5. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
6. Verify that port channel interface is Down and the peer-link also operationally down.
7. Wait until the recovery-interval expire, and verify that both the ports gets released and port operational state is UP now.
8. Verify that port channel is UP and peer-link also comes UP.
9. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
10. Check the traffic forwarding after peer-link is UP.| - -#### 3.2.14 Verify that with RPVST running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed by Link Flap Error Disabled. - -| **Test ID** | **LinkFlapErrorDisable_Func_014** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Verify that with RPVST running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed/released by Link Flap Error Disabled.** | -| **Test Setup** | **Topology 1** | -| **Type** | **Functional** | -| **Steps** | 1. Run RPVST between the DUTs after convergence happened, configure/enable Link Flap Error Disable on the designated port on root device/or non-root device having designated port.
2. Perform port flaps from the partner DUT as per configured flap-threshold and sampling-interval.
3. Verify that the designated port gets suppressed by Link Flap Error Disable and port is operationally Down.
4. Verify that STP gets converged accordingly and port states are updated correctly.
5. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
6. After recovery-interval is completed, verify that port gets released and operationally UP.
7. Verify that STP gets converged and port states updated accordingly.
8. Configure/enable Link Flap Error Disable on the Root port on non-root device.
9. Perform port flaps from the partner DUT as per cofnigured flap-threshold and sampling-interval.
10. Verify that the Root port gets suppressed by Link Flap Error Disable and port is operationally Down.
11. Verify that STP gets converged accordingly and port states are updated correctly.
12. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
13. After recovery-interval is completed, verify that port gets released and operationally UP.
14. Verify that STP gets converged and port states updated accordingly.| - -#### 3.2.15 Verify that with PVST running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed by Link Flap Error Disabled. - -| **Test ID** | **LinkFlapErrorDisable_Func_015** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Verify that with PVST running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed/released by Link Flap Error Disabled.** | -| **Test Setup** | **Topology 1** | -| **Type** | **Functional** | -| **Steps** | 1. Run PVST between the DUTs after convergence happened, configure/enable Link Flap Error Disable on the designated port on root device/or non-root device having designated port.
2. Perform port flaps from the partner DUT as per configured flap-threshold and sampling-interval.
3. Verify that the designated port gets suppressed by Link Flap Error Disable and port is operationally Down.
4. Verify that STP gets converged accordingly and port states are updated correctly.
5. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
6. After recovery-interval is completed, verify that port gets released and operationally UP.
7. Verify that STP gets converged and port states updated accordingly.
8. Configure/enable Link Flap Error Disable on the Root port on non-root device.
9. Perform port flaps from the partner DUT as per configured flap-threshold and sampling-interval.
10. Verify that the Root port gets suppressed by Link Flap Error Disable and port is operationally Down.
11. Verify that STP gets converged accordingly and port states are updated correctly.
12. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
13. After recovery-interval is completed, verify that port gets released and operationally UP.
14. Verify that STP gets converged and port states updated accordingly.| - -#### 3.2.16 Verify that with MSTP running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed by Link Flap Error Disabled. - -| **Test ID** | **LinkFlapErrorDisable_Func_016** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Verify that with MSTP running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed/released by Link Flap Error Disabled.** | -| **Test Setup** | **Topology 1** | -| **Type** | **Functional** | -| **Steps** | 1. Run MSTP between the DUTs after convergence happened, configure/enable Link Flap Error Disable on the designated port on root device/or non-root device having designated port.
2. Perform port flaps from the partner DUT as per configured flap-threshold and sampling-interval.
3. Verify that the designated port gets suppressed by Link Flap Error Disable and port is operationally Down.
4. Verify that STP gets converged accordingly and port states are updated correctly.
5. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
6. After recovery-interval is completed, verify that port gets released and operationally UP.
7. Verify that STP gets converged and port states updated accordingly.
8. Configure/enable Link Flap Error Disable on the Root port on non-root device.
9. Perform port flaps from the partner DUT as per configured flap-threshold and sampling-interval.
10. Verify that the Root port gets suppressed by Link Flap Error Disable and port is operationally Down.
11. Verify that STP gets converged accordingly and port states are updated correctly.
12. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
13. After recovery-interval is completed, verify that port gets released and operationally UP.
14. Verify that STP gets converged and port states updated accordingly.| - -#### 3.2.17 Verify the UDLD state update correctly after port gets suppressed and released by the Link Flap Error Disable. - -| **Test ID** | **LinkFlapErrorDisable_Func_017** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Verify the UDLD state update correctly after port gets suppressed and released by the Link Flap Error Disable.** | -| **Test Setup** | **Topology 1** | -| **Type** | **Functional** | -| **Steps** | 1. In both DUTs, configure UDLD on the physical port connecting the DUTs, check that UDLD status is updated as Bidirectional.
2. In DUT1, Configure Link Flap Error Disable on that port.
3. From DUT2, perform port flaps as per the configured flap-threshold and sampling-interval.
4. Verify that port in DUT1 gets suppressed and operational state moved to Down, and UDLD state is updated as undetermined.
5. After recovery-interval is over, verify that port gets released and operational state moved to UP and also check that UDLD state is updated as Bidirectional.
6. In DUT2, do 'ifconfig down' and check the UDLD status in DUT1 is updated as unidirectional.
7. Do 'ifconfig up' and check the UDLD status in DUT1 is updated as bidirectional.| - -#### 3.2.18 Verify the MAC learning and L2 traffic forwarding after port is suppressed and released by Link Flap Error Disable. - -| **Test ID** | **LinkFlapErrorDisable_Func_018** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Verify the MAC learning and L2 traffic forwarding after port is suppressed and released by Link Flap Error Disable.** | -| **Test Setup** | **Topology 1** | -| **Type** | **Functional** | -| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) with default values for flap-threshold, sampling-interval and recovery-interval.
2.Send L2 learned traffic between TG ports, check that MAC is learned on d1port1 in DUT1 and traffic is forwarded successfully.
3. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold and sampling-interval configured on d1port1.
3. Verify that d1port1 gets suppressed and port operational state moved to Down. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
4. Verify that MAC entries related to this port also removed from FDB table.
5. Wait until the recovery-interval expire, and verify that port gets released and port operational state is UP now.
6. Send the traffic again and check the MAC learning and traffic forwarding and also check that inter counters on this port are getting updated properly.| - -#### 3.2.19 Verify the port operational state after continuous port flaps for two consecutive recovery-interval (non-default value). - -| **Test ID** | **LinkFlapErrorDisable_Func_019** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Verify the port operational state after continuous port flaps for two consecutive recovery-interval (non-default value).** | -| **Test Setup** | **Topology 1** | -| **Type** | **Functional** | -| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) with default values for flap-threshold (5), sampling-interval (10) and recovery-interval (60 s).
2. In DUT2, perform continuous port flaps (shut/no shut) for 120sec on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold and sampling-interval configured on d1port1.
3. Verify that in DUT1, d1port1 gets repeatedly suppressed and released and finally in suppressed state after completion of port flaps. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
4. Wait until the final recovery-interval expire, and verify that port gets released and port operational state is UP now.
5. Send the traffic and check traffic forwarding.| - -#### 3.2.20 Verify the port state after warm boot, when warm boot performed with the port is in suppressed state with non zero recovery-interval greater than warm boot time. - -| **Test ID** | **LinkFlapErrorDisable_Func_020** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Verify the port state after warm boot, when warm boot performed with the port is in suppressed state with non zero recovery-interval greater than warm boot time.** | -| **Test Setup** | **Topology 1** | -| **Type** | **Functional** | -| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical ports (d1port1, d1port2, d1port3. d1port2,d2port3 are port channel member ports) with default values for flap-threshold (5), sampling-interval (10) and recovery-interval (600 s).
2. In DUT2, perform port flaps (shut/no shut) on the corresponding ports (that are connected to DUT1 port) as per flap-threshold and sampling-interval.
3. Verify that in DUT1, these ports gets suppressed and port states moved to Down state and port channel also Down. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
4. Before recovery-interval expire, perform warm boot.
5. After DUT comes UP (considering warm boot completed in 300 sec) check the link flap error disable status under "show errdisable link-flap" command, as warm boot completed before recovery-interval, ports should still be suppressed state and operational state should be down.
6. After recovery-interval expire, and verify that ports gets released and ports operational state is UP and port channel state also UP.| - -#### 3.2.21 Verify the port state after warm boot, when warm boot is performed with the port is in suppressed state with non zero recovery-interval less than warm boot time. - -| **Test ID** | **LinkFlapErrorDisable_Func_021** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Verify the port state after warm boot, when warm boot is performed with the port is in suppressed state with non zero recovery-interval less than warm boot time.** | -| **Test Setup** | **Topology 1** | -| **Type** | **Functional** | -| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical ports (d1port1, d1port2, d1port3. d1port2,d2port3 are port channel member ports) with default values for flap-threshold (5), sampling-interval (10) and recovery-interval (60 s).
2. In DUT2, perform port flaps (shut/no shut) on the corresponding ports (that are connected to DUT1 port) as per flap-threshold and sampling-interval.
3. Verify that in DUT1, these ports gets suppressed and port states moved to Down state and port channel also Down. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
4. Before recovery-interval expire, perform warm boot.
5. After DUT comes UP (considering warm boot completed in 300 sec) check the link flap error disable status under "show errdisable link-flap" command, as recovery-interval expire during warm boot, ports should still be in released state and operational state should be UP and Port channel also should UP.| - -#### 3.2.22 Verify that port state gets suppressed and released as per config after Save Reboot and Fast boot. - -| **Test ID** | **LinkFlapErrorDisable_Func_022** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Verify that port state gets suppressed and released as per config after Save Reboot and Fast boot.** | -| **Test Setup** | **Topology 1** | -| **Type** | **Functional** | -| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical ports (d1port1, d1port2, d1port3. d1port2,d2port3 are port channel member ports) with default values for flap-threshold, sampling-interval and recovery-interval. Perform Save and Reboot in DUT1.
2. After DUT1 comes UP, in DUT2, perform port flaps (shut/no shut) for 120sec on the corresponding ports (that are connected to DUT1 port) as per flap-threshold and sampling-interval.
3. Verify that in DUT1, these ports gets suppressed and port states moved to Down state and port channel also Down. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
4. After recovery-interval expire, check the link flap error disable status under "show errdisable link-flap" command, as recovery-interval expire during warm boot, ports should be released state and operational state should be UP and Port channel also should UP.
5. Repeat the same steps after performing Fast boot in DUT1.| - -#### 3.2.23 Verify that there is no memory leak with Link Flap Error Disable feature enabled and continuous port flaps are performed on the interface. - -| **Test ID** | **LinkFlapErrorDisable_Func_023** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Verify that there is not memory leak with Link Flap Error Disable feature enabled and continuous port flaps are performed on the interface.** | -| **Test Setup** | **Topology 1** | -| **Type** | **Functional** | -| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on all the interfaces with non-default values for flap-threshold, sampling-interval and recovery-interval.
2. Note down the memory usage in the DUT1.
3. In DUT2, perform continuous port flaps (shut/no shut) for longer duration on the corresponding ports (that are connected to DUT1 port) as per flap-threshold and sampling-interval.
4. Verify that in DUT1, these ports gets suppressed and released as per the recovery-interval.
5. After long duration of port flaps stopped, and after recovery-interval expire, ports should be released state and operational state should be UP.
5. Note down the memory usage in DUT1.
6. Check the difference between the two readings and based on that report if there is any memory leak.| - -### 3.3 Negative Test Cases - -#### 3.3.1 Verify that user should not be allowed to configure the Link Flap Error Disable on port channel interface and Vlan interfaces. - -| **Test ID** | **LinkFlapErrorDisable_Func_024** | -| -------------- | :----------------------------------------------------------- | -| **Test Name** | **Verify that user should not be allowed to configure the Link Flap Error Disable on port channel interface and Vlan interfaces.** | -| **Test Setup** | **Topology 1** | -| **Type** | **Functional** | -| **Steps** | 1. Try to configure Link Flap Error Disable on a port channel interface, it should not be accepted.
2. Try to configure Link Flap Error Disable on a Vlan channel interface, it should not be accepted. | - -### 3.4 Management - -#### 3.4.1 REST - -##### 3.4.1.1 Verify the Link Flap Error Disable feature via REST. - -| **Test ID** | **LinkFlapErrorDisable_Func_025** | -| -------------- | ------------------------------------------------------------ | -| **Test Name** | **Verify the Link Flap Error Disable feature via REST.** | -| **Test Setup** | **Topology 1** | -| **Type** | **Functional** | -| **Steps** | This test case will be covered implicitly in REST run.| - -## Reference Links - +# SQA Test Plan +# Link Flap Error Disable +# SONiC 4.0.0 Release + +## Test Plan Revision History + +| Rev | Date | Author | Change Description | +| ---- | ---------- | --------------- | ------------------ | +| 0.1 | 5/28/2021 | Kesava Swamy K | Initial Version | +| 0.2 | 5/31/2021 | | Removed unsupported tests as per latest update in HLD | + +## List of Reviewers + +| Function | Name | +| :------: | :--: | +| QA | Chandra Bhushan Singh | +| DEV | Steven Lu | + +## List of Approvers + +| Function | Name | Date Approved | +| :------: | :--: | :-----------: | +| | | | + +## Definition/Abbreviation + +| **Term** | **Meaning** | +| -------- | -------------------------- | +| | | + +## Feature Overview + + The Port Link Flap Error Disable feature prevent excessive interface flapping events from adversely affecting routing protocols and routing tables in the network. Suppressing port state change events to protect the system resources. More details in HLD. + +## 1 Test Focus Areas + +### 1.1 CLI Testing + + - Validation of CLI config command "link-error-disable flap-threshold sampling-interval recovery-interval" to configure the feature on interface level. + - Validation of CLI config command "link-error-disable flap-threshold sampling-interval recovery-interval" to enable the feature on interface range mode. + - Validation of CLI config command "link-error-disable" on interface and interface range mode. + - Validation of CLI config command "errdisable recovery cause link-flap". + - Validation of CLI show command "show errdisable link-flap" and "show errdisable recovery". + +### 1.2 Functional Testing + + - Verify that with Link Flap Error Disable default config on that physical interface, port goes down (or suppressed) when port flaps occur and comes up(or released ) after recovery-interval expire. + - Verify that with Link Flap Error Disable non-default config on that physical interface, port goes down (or suppressed) when port flaps occur and comes up(or released ) after recovery-interval expire. + - Verify that with Link Flap Error Disable recovery-interval is set to 0, port remains in operationally down state until administrator overrides it. + - Verify that with Link Flap Error Disable flap-threshold is set to 1, port goes down (or suppressed) immediately after one port flap (one time up to down). + - Verify that corresponding syslog is generated when port is suppressed or released by Link Flap Error Disable. + - Verify that after disable and re enable of 'errdisable recovery cause link-flap' globally and Link Flap Error Disable and re enable on the interface, port gets suppressed/released correctly as per config. + - Verify the Port Channel interface (with 2 member ports) status is properly updated when both member ports are suppressed/released by Link Flap Error Disable. + - Verify that on a port routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when the port gets suppressed(/released) by Link Flap Error Disable. + - Verify that on a port channel routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when both the member ports gets suppressed(/released) by Link Flap Error Disable. + - Verify that on a Vlan routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when port associated to that Vlan gets suppressed(/released) by Link Flap Error Disable. + - Verify the Vlan Autostate status when Vlan member port is suppressed/released by Link Flap Error Disable. + - Verify that with different Link Flap Error Disable interface level configs on multiple interfaces, each port gets suppressed/released as per that specific interface configuration. + - Verify the MCLAG state and peer-link state when the peer-link port channel member port is suppressed/released by Link Flap Error Disable. + - Verify that with RPVST running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed by Link Flap Error Disabled. + - Verify that with PVST running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed by Link Flap Error Disabled. + - Verify that with MSTP running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed by Link Flap Error Disabled. + - Verify the UDLD state update accordingly when the port gets suppressed or released by the Link Flap Error Disable. + - Verify the MAC learning and L2 traffic forwarding after port is suppressed and released by Link Flap Error Disable. + - Verify the port operational state after continuous port flaps for two consecutive recovery-interval (non-default value). + - Verify the port state after warm boot, with warm boot is performed when the port is in suppressed state with non zero recovery-interval greater than warm boot time. + - Verify the port state after warm boot, with warm boot is performed when the port is in suppressed state with non zero recovery-interval less than warm boot time. + - Verify the Link Flap Error Disable functionality after Reboot/FastReboot. + - Verify that there is no memory leak with Link Flap Error Disable feature enabled and continuous port flaps are performed on the interface. + - Verify that user should not be allowed to configure the Link Flap Error Disable on port channel interface and vlan interfaces. + - Verify the Link Flap Error Disable feature via REST. + + +## 2 Topologies + + ![Topology](LinkFlapErrorDisable.png "Figure: Topology 1") + +#### Topology 1 +Topology Description - + - Minimum 4 back to back links are required between DUT1-DUT2, and these links will be used as physical ports, or Vlan associated ports or port channel interfaces based on the test case requirement. + - In case of L3 traffic related test, corresponding dynamic protocol or static routes will be configured. + - For MCLAG peer-link port state validation after Link Flap Error Disable, DUT3 will be sued as MCLAG client, and corresponding MCLAG port channel and other client Vlan will be configured in the respective test cases. + +## 3 Test Case and objectives + +### 3.1 CLI Test Cases + +#### 3.1.1 Validate CLI config command "link-error-disable flap-threshold sampling-interval recovery-interval" to configure the feature on interface level. + +| **Test ID** | **LinkFlapErrorDisable_CLI_001** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Validate CLI command "link-error-disable flap-threshold sampling-interval recovery-interval" to configure the feature on interface level.** | +| **Test Setup** | **Topology 1** | +| **Type** | **CLI** | +| **Steps** | 1. Validate CLI options for command "link-error-disable flap-threshold sampling-interval recovery-interval" interface level".
2. Check the running-config is updated correctly.| + + +#### 3.1.2 Validate CLI command "link-error-disable flap-threshold sampling-interval recovery-interval" to configure the feature on interface range mode. + +| **Test ID** | **LinkFlapErrorDisable_CLI_002** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Validate CLI command "link-error-disable flap-threshold sampling-interval recovery-interval" to configure the feature on interface range mode.**| +| **Test Setup** | **Topology 1** | +| **Type** | **CLI** | +| **Steps** | 1. Validate CLI options for command "link-error-disable flap-threshold sampling-interval recovery-interval" to configure the feature on interface range mode.
2. Check the running-config is updated correctly.| + + +#### 3.1.3 Validation of CLI config command "link-error-disable" on interface and interface range mode. + +| **Test ID** | **LinkFlapErrorDisable_CLI_003** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Validation of CLI config command "link-error-disable" on interface and interface range mode.**| +| **Test Setup** | **Topology 1** | +| **Type** | **CLI** | +| **Steps** | 1. Validate CLI options for show commands "show errdisable link-flap" and "show errdisable recovery".| + +#### 3.1.4 Validation of CLI config command "errdisable recovery cause link-flap". + +| **Test ID** | **LinkFlapErrorDisable_CLI_004** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Validation of CLI config command "errdisable recovery cause link-flap".**| +| **Test Setup** | **Topology 1** | +| **Type** | **CLI** | +| **Steps** | 1. Validate CLI options for show commands "show errdisable link-flap" and "show errdisable recovery".| + +#### 3.1.5 Validation of CLI show command "show errdisable link-flap" and "show errdisable recovery". + +| **Test ID** | **LinkFlapErrorDisable_CLI_005** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Validation of CLI show command "show errdisable link-flap" and "show errdisable recovery".**| +| **Test Setup** | **Topology 1** | +| **Type** | **CLI** | +| **Steps** | 1. Validate CLI options for show commands "show errdisable link-flap" and "show errdisable recovery".| + +### 3.2 Functional Test Cases + +#### 3.2.1 Verify that with Link Flap Error Disable default config on that physical interface, port goes down (or suppressed) when port flaps occur and comes up(or released ) after recovery-interval expire. + +| **Test ID** | **LinkFlapErrorDisable_Func_001** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that with Link Flap Error Disable default config on that physical interface, port goes down (or suppressed) when port flaps occur and comes up(or released ) after recovery-interval expire.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) without any parameters and check it is enabled with default values to those parameters.
2. Verify that link flap error disable status for that interface is updated as 'On' under "show errdisable link-flap".
3. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold and sampling-interval configured on d1port1.
4. Verify that d1port1 gets suppressed and port operational state moved to Down. Verify that "show errdisable recovery" shows interface as link-flap error disabled and "show errdisable link-flap" shows the status as 'Errdisabled' for that interface.
5. Wait until the recovery-interval expire, and verify that port gets released and port operational state is UP now. Verify that "show errdisable link-flap" commands shows the correct status as 'On' for that interface.
6. In DUT2, perform port flaps again but not as per flap-threshold and sampling-interval configured on d1port1.
7. Verify that now d1port1 don't get suppressed as the port flaps didn't occur as per the default config parameters. Verify that "show errdisable link-flap" commands shows the correct status as 'Not-errdisabled' for that interface.| + +#### 3.2.2 Verify that with Link Flap Error Disable non-default config on that physical interface, port goes down (or suppressed) when port flaps occur and comes up(or released ) after recovery-interval expire. + +| **Test ID** | **LinkFlapErrorDisable_Func_002** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that with Link Flap Error Disable non-default config on that physical interface, port goes down (or suppressed) when port flaps occur and comes up(or released ) after recovery-interval expire.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) and configure non-default values for flap-threshold, sampling-interval and recovery-interval.
2. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold and sampling-interval configured on d1port1.
3. Verify that d1port1 gets suppressed and port operational state moved to Down. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
4. Before recovery-interval expire, do shut no shut on the error disabled interface, check that interface is not UP as the recovery interval is not expired.
5. Check that after recovery interval expire, interface is UP and Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status as 'Not-errdisabled' for that interface.| + +#### 3.2.3 Verify that with Link Flap Error Disable recovery-interval is set to 0, port remains in operationally down state until administrator overrides it. + +| **Test ID** | **LinkFlapErrorDisable_Func_003** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that with Link Flap Error Disable recovery-interval is set to 0, port remains in operationally down state until administrator overrides it.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) with non-default values for flap-threshold (say 5), recovery-interval(say 10) and sampling-interval (10).
2. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold (5 up-to-down events) in 10 seconds.
3. Verify that d1port1 gets suppressed and port operational state moved to Down.
4. Wait until the recovery-interval (10 sec) expire, and verify that port gets released and port operational state is UP now.
5. Change the recovery-interval to 0. And in DUT2, perform port flaps again as per flap-threshold(5 up-to-down events) in 10 sec.
6. Verify that d1port1 get suppressed and port state moved to operational Down state.
7. Wait for 10 sec, verify that port operational state is still Down.
8. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
9. Perform shut no shut on the interface, and then verify that interface is operationally UP.
10. In DUT2, perform port flaps again as per flap-threshold(5 up-to-down events) in 10 sec.
6. Verify that d1port1 get suppressed and port state moved to operational Down state.
7. Wait for 10 sec, verify that port operational state is still Down.
8. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
9. Remove the Link Flap Error Disable config on the interface, and then verify that interface is operationally UP.| + +#### 3.2.4 Verify that with Link Flap Error Disable flap-threshold is set to 1, port goes down (or suppressed) immediately after one port flap (one time up to down). + +| **Test ID** | **LinkFlapErrorDisable_Func_004** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that with Link Flap Error Disable flap-threshold is set to 1, port goes down (or suppressed) immediately after one port flap (one time up to down).** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) with non-default values for recovery-interval(say 10), sampling-interval (10) and flap-threshold to 1.
2. In DUT2, perform one time port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) in 10 seconds.
3. Verify that d1port1 gets suppressed and port operational state moved to Down.
4. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
5. Wait until the recovery-interval (10 sec) expire, and verify that port gets released and port operational state is UP now.
6. Change flap-threshold to 5. And in DUT2, perform one time port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) in 10 seconds.
7. Verify that d1port1 don't get suppressed and port state not moved to operational Down state.
8. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
9. Wait for 10 sec, verify that port operational state moved to UP.| + +#### 3.2.5 Verify that corresponding syslog is generated when port is suppressed or released by Link Flap Error Disable. + +| **Test ID** | **LinkFlapErrorDisable_Func_005** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that corresponding syslog is generated when port is suppressed or released by Link Flap Error Disable.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) with non-default values for recovery-interval, sampling-interval and flap-threshold
2. In DUT2, perform one time port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold and sampling interval.
3. Verify that d1port1 gets suppressed and port operational state moved to Down.
4. Verify that in syslog, a proper log message is generated informing the port state going down due to link flap error disable.
5. Wait until the recovery-interval expire, and verify that port gets released and port operational state is UP now.
6. Verify that in syslog, a proper log message is generated informing the port state going up due to link flap error disable recovery-interval expire.| + +#### 3.2.6 Verify that after disable and re enable of 'errdisable recovery cause link-flap' globally and Link Flap Error Disable and re enable on the interface, port gets suppressed/released correctly as per config. + +| **Test ID** | **LinkFlapErrorDisable_Func_006** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that after disable and re enable of 'errdisable recovery cause link-flap' globally and Link Flap Error Disable and re enable on the interface, port gets suppressed/released correctly as per config.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, disable the errdisable recovery casue link-flap and also disable the link-error-disable on the interface.
2. Reenable link-error-disable on the interface with non default values for recovery-interval, sampling-interval and flap-threshold.
3. In DUT2, perform one time port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold and sampling interval.
4. Verify that d1port1 dont get suppressed and port operational state not moved to Down.
5. Verify that "show errdisable link-flap" commands shows the correct status for that interface.
6. Enable errdisable recovery cause link-flap gloablly and perform the port flaps again.
7. Verify that d1port1 get suppressed and port operational state moved to Down.
8. Verify that "show errdisable link-flap" commands shows the correct status for that interface.
9. Wait until the recovery-interval expire, and verify that port gets released and port operational state is UP now.| + +#### 3.2.7 Verify the Port Channel interface (with 2 member ports) status is properly updated when both member ports are suppressed/released by Link Flap Error Disable. + +| **Test ID** | **LinkFlapErrorDisable_Func_007** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify the Port Channel interface (with 2 member ports) status is properly updated when both member ports are suppressed/released by Link Flap Error Disable.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical ports (d1port1, d1port2 - members of port channel interface) with non-default values for recovery-interval, sampling-interval and flap-threshold
2. In DUT2, perform port flaps (shut/no shut) on the corresponding ports (d2port1, d2port2, that is connected to DUT1 port) as per flap-threshold and sampling interval.
3. Verify that d1port1, d1port2 ports gets suppressed and port operational state moved to Down.
4. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
5. Verify that port channel interface is Down.
6. Wait until the recovery-interval expire, and verify that both the ports gets released and port operational state is UP now.
7. Verify that port channel is UP, and verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
8. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port2, that is connected to DUT1 port) as per flap-threshold and sampling interval.
9. Verify that d1port2 (not d1port1) port gets suppressed and port operational state not moved to Down state as only one port is down.
10. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
11. Verify that port d1port2 is UP after recovery-interval expire and port channel state should not change.
12. Send Learned traffic through this port channel and check that traffic forward successfully and interface counters and port channel counters should updated correctly.| + +#### 3.2.8 Verify that on a port routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when that physical port gets suppressed(/released) by Link Flap Error Disable. + +| **Test ID** | **LinkFlapErrorDisable_Func_008** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that on a port routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when that physical port gets suppressed(/released) by Link Flap Error Disable.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. Configure port routing interface between the DUTs with IPv4/IPv6 address.
2. Establish IPv4/IPv6 BGP neighborship.
3. Configure a Ipv4/Ipv6 static route in DUT1 with next hop as port routing interface, check that IPv4/IPv6 route table is updated with this route.
4. configure a loopback interface with IPv4/IPv6 address in DUT2, redistribute it in BGP. Check this IPv4/IPv6 route is learned and updated in DUT1 route table via Vlan routing interface as next hop.
5. Do ping from DUT2 to the IPv4/IPv6 address, check that ARP/ND table updated with egress interface as port routing interface.
6. Send IPv4/IPv6 traffic from TG1 to TG2 such that traffic forwards via port routing interface.
7. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1- member port of that Vlan) with non-default values for recovery-interval, sampling-interval and flap-threshold
8. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1 that is connected to DUT1 port) as per flap-threshold and sampling interval.
9. Verify that d1port1, port gets suppressed and port operational state moved to Down.
10. Verify that "show errdisable link-flap" commands shows the correct status for that interface.
11. In DUT1, verify that port routing interface is Down. Corresponding ARP/ND entries are removed. BGP peers are Down, and corresponding static and dynamic routes are removed from route table.
12. Wait until the recovery-interval expire, and verify that the port gets released and is UP.
13. Verify that "show errdisable link-flap" commands shows the correct status for that interface.
14. In DUT1, verify that port routing interface is UP, corresponding ARP/ND table are updated, BGP peers are UP and route table also updated with static and dynamic routes.
15. Send the traffic again and check that traffic is forwarded successful via port routing interface and check that interface counters also getting updated properly.| + +#### 3.2.9 Verify that on a port channel routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when both the member ports gets suppressed(/released) by Link Flap Error Disable. + +| **Test ID** | **LinkFlapErrorDisable_Func_009** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that on a port channel routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when both the member ports gets suppressed(/released) by Link Flap Error Disable.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. Configure port channel (with 2 member ports) routing interface between the DUTs with IPv4/IPv6 address.
2. Establish IPv4/IPv6 BGP neighborship.
3. Configure a Ipv4/Ipv6 static route in DUT1 with next hop as port channel routing interface, check that IPv4/IPv6 route table is updated with this route.
4. configure a loopback interface with IPv4/IPv6 address in DUT2, redistribute it in BGP. Check this IPv4/IPv6 route is learned and updated in DUT1 route table via port channel routing interface as next hop.
5. Do ping from DUT2 to the IPv4/IPv6 address, check that ARP/ND table updated with egress interface as port channel interface.
6. Send IPv4/IPv6 traffic from TG1 to TG2 such that traffic forwards via port channel routing interface.
7. In DUT1, enable/configure the Link Flap Error Disable feature on the physical ports (d1port1, d1port2 - members of port channel interface) with non-default values for recovery-interval, sampling-interval and flap-threshold
8. In DUT2, perform port flaps (shut/no shut) on the corresponding ports (d2port1, d2port2, that is connected to DUT1 port) as per flap-threshold and sampling interval.
9. Verify that d1port1, d1port2 ports gets suppressed and port operational state moved to Down.
10. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
11. In DUT1, verify that port channel routing interface is Down. Corresponding ARP/ND entries are removed. BGP peers are Down, and corresponding static and dynamic routes are removed from route table.
12. Wait until the recovery-interval expire, and verify that both the ports gets released and port operational state is UP now.
13. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
14. In DUT1, verify that port channel routing interface is UP, corresponding ARP/ND table are updated, BGP peers are UP and route table also updated with static and dynamic routes.
15. Send the traffic again and check that traffic is forwarded successful via port channel routing interface.| + +#### 3.2.10 Verify that on a Vlan routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when port associated to that Vlan gets suppressed(/released) by Link Flap Error Disable. + +| **Test ID** | **LinkFlapErrorDisable_Func_010** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that on a Vlan routing interface ARP/ND, static routes and dynamic routes are removed(/added) and IPv4/IPv6 traffic stops(/resume) forwarding when port associated to that Vlan gets suppressed(/released) by Link Flap Error Disable.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. Configure Vlan routing interface between the DUTs with IPv4/IPv6 address.
2. Establish IPv4/IPv6 BGP neighborship.
3. Configure a Ipv4/Ipv6 static route in DUT1 with next hop as Vlan routing interface, check that IPv4/IPv6 route table is updated with this route.
4. configure a loopback interface with IPv4/IPv6 address in DUT2, redistribute it in BGP. Check this IPv4/IPv6 route is learned and updated in DUT1 route table via Vlan routing interface as next hop.
5. Do ping from DUT2 to the IPv4/IPv6 address, check that ARP/ND table updated with egress interface as Vlan routing interface.
6. Send IPv4/IPv6 traffic from TG1 to TG2 such that traffic forwards via Vlan routing interface.
7. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1- member port of that Vlan) with non-default values for recovery-interval, sampling-interval and flap-threshold
8. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1 that is connected to DUT1 port) as per flap-threshold and sampling interval.
9. Verify that d1port1, port gets suppressed and port operational state moved to Down.
10. Verify that "show errdisable link-flap" commands shows the correct status for that interface.
11. In DUT1, verify that Vlan routing interface is Down. Corresponding ARP/ND entries are removed. BGP peers are Down, and corresponding static and dynamic routes are removed from route table.
12. Wait until the recovery-interval expire, and verify that the port gets released and is UP.
13. Verify that "show errdisable link-flap" commands shows the correct status for that interface.
14. In DUT1, verify that Vlan routing interface is UP, corresponding ARP/ND table are updated, BGP peers are UP and route table also updated with static and dynamic routes.
15. Send the traffic again and check that traffic is forwarded successful via Vlan routing interface and check that interface counters are also getting updated.| + +#### 3.2.11 Verify the Vlan Autostate status when vlan member port is suppressed/released by Link Flap Error Disable. + +| **Test ID** | **LinkFlapErrorDisable_Func_011** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify the Vlan Autostate status when Vlan member port is suppressed/released by Link Flap Error Disable.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. Vlan autostate is enabled by default.
2. Create a Vlan and associate a port (d1port1) to that Vlan, verify Vlan status as active.
3. Enable/Configure Link Flap Error Disable on that port with non-default values for sampling-interval, flap-threshold and recovery-interval.
4. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1 that is connected to DUT1 port) as per flap-threshold and sampling-interval.
5. Verify that d1port1, port gets suppressed and port operational state moved to Down.
6. Verify that "show errdisable link-flap" command shows the correct status for that interface.
7. Verify that corresponding Vlan become in active. Now disable autostate on that port, check that Vlan become active as autostate is disabled.
8. Check that recovery-interval, port is operationally UP and Vlan is active.
9. Re enable autostate and check that vlan status is active only.| + +#### 3.2.12 Verify that with different Link Flap Error Disable interface level configs on multiple interfaces, each port gets suppressed/released as per that specific interface configuration. + +| **Test ID** | **LinkFlapErrorDisable_Func_012** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that with different Link Flap Error Disable interface level configs on multiple interfaces, each port gets suppressed/released as per that specific interface configuration.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. Configure/enable Link Flap Error Disable with different non-default values on multiple interfaces (configure different set of configs on all interfaces (including interface that are not UP) using a range command).
2. In DUT2, perform the port flaps (shut/no shut) on the corresponding ports (connected to DUT1 ports) as per the configured flap-threshold and sampling-interval on those corresponding interfaces in DUT1.
3. Verify that ports in DUT1 are moved to down state and the status is updated properly under "show errdisable link-flap" command.
4. Wait until the corresponding recovery-interval of those ports expire, and verify that the port gets released and is UP and link flap error disable status is properly updated under "show errdisable link-flap" command.| + +#### 3.2.13 Verify the MCLAG state and peer-link state when the peer-link port channel member port is suppressed/released by Link Flap Error Disable. + +| **Test ID** | **LinkFlapErrorDisable_Func_013** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify the MCLAG state and peer-link state when the peer-link port channel member port is suppressed/released by Link Flap Error Disable.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. Configure MCLAG between DUT1-DUT2 with port channel as peer-link with DUT-3 as MCLAG client.
2. In DUT1, enable/configure the Link Flap Error Disable feature on the physical ports (d1port1, d1port2 - members of port channel interface) with non-default values for recovery-interval, sampling-interval and flap-threshold
3. In DUT2, perform port flaps (shut/no shut) on the corresponding ports (d2port1, d2port2, that is connected to DUT1 port) as per flap-threshold and sampling interval.
4. Verify that d1port1, d1port2 ports gets suppressed and port operational state moved to Down.
5. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
6. Verify that port channel interface is Down and the peer-link also operationally down.
7. Wait until the recovery-interval expire, and verify that both the ports gets released and port operational state is UP now.
8. Verify that port channel is UP and peer-link also comes UP.
9. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
10. Check the traffic forwarding after peer-link is UP.| + +#### 3.2.14 Verify that with RPVST running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed by Link Flap Error Disabled. + +| **Test ID** | **LinkFlapErrorDisable_Func_014** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that with RPVST running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed/released by Link Flap Error Disabled.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. Run RPVST between the DUTs after convergence happened, configure/enable Link Flap Error Disable on the designated port on root device/or non-root device having designated port.
2. Perform port flaps from the partner DUT as per configured flap-threshold and sampling-interval.
3. Verify that the designated port gets suppressed by Link Flap Error Disable and port is operationally Down.
4. Verify that STP gets converged accordingly and port states are updated correctly.
5. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
6. After recovery-interval is completed, verify that port gets released and operationally UP.
7. Verify that STP gets converged and port states updated accordingly.
8. Configure/enable Link Flap Error Disable on the Root port on non-root device.
9. Perform port flaps from the partner DUT as per cofnigured flap-threshold and sampling-interval.
10. Verify that the Root port gets suppressed by Link Flap Error Disable and port is operationally Down.
11. Verify that STP gets converged accordingly and port states are updated correctly.
12. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
13. After recovery-interval is completed, verify that port gets released and operationally UP.
14. Verify that STP gets converged and port states updated accordingly.| + +#### 3.2.15 Verify that with PVST running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed by Link Flap Error Disabled. + +| **Test ID** | **LinkFlapErrorDisable_Func_015** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that with PVST running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed/released by Link Flap Error Disabled.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. Run PVST between the DUTs after convergence happened, configure/enable Link Flap Error Disable on the designated port on root device/or non-root device having designated port.
2. Perform port flaps from the partner DUT as per configured flap-threshold and sampling-interval.
3. Verify that the designated port gets suppressed by Link Flap Error Disable and port is operationally Down.
4. Verify that STP gets converged accordingly and port states are updated correctly.
5. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
6. After recovery-interval is completed, verify that port gets released and operationally UP.
7. Verify that STP gets converged and port states updated accordingly.
8. Configure/enable Link Flap Error Disable on the Root port on non-root device.
9. Perform port flaps from the partner DUT as per configured flap-threshold and sampling-interval.
10. Verify that the Root port gets suppressed by Link Flap Error Disable and port is operationally Down.
11. Verify that STP gets converged accordingly and port states are updated correctly.
12. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
13. After recovery-interval is completed, verify that port gets released and operationally UP.
14. Verify that STP gets converged and port states updated accordingly.| + +#### 3.2.16 Verify that with MSTP running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed by Link Flap Error Disabled. + +| **Test ID** | **LinkFlapErrorDisable_Func_016** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that with MSTP running between the DUTs, STP port states are updated accordingly when the Designated forwarding port and Root ports are suppressed/released by Link Flap Error Disabled.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. Run MSTP between the DUTs after convergence happened, configure/enable Link Flap Error Disable on the designated port on root device/or non-root device having designated port.
2. Perform port flaps from the partner DUT as per configured flap-threshold and sampling-interval.
3. Verify that the designated port gets suppressed by Link Flap Error Disable and port is operationally Down.
4. Verify that STP gets converged accordingly and port states are updated correctly.
5. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
6. After recovery-interval is completed, verify that port gets released and operationally UP.
7. Verify that STP gets converged and port states updated accordingly.
8. Configure/enable Link Flap Error Disable on the Root port on non-root device.
9. Perform port flaps from the partner DUT as per configured flap-threshold and sampling-interval.
10. Verify that the Root port gets suppressed by Link Flap Error Disable and port is operationally Down.
11. Verify that STP gets converged accordingly and port states are updated correctly.
12. Verify that "show errdisable link-flap" commands shows the correct status for those interfaces.
13. After recovery-interval is completed, verify that port gets released and operationally UP.
14. Verify that STP gets converged and port states updated accordingly.| + +#### 3.2.17 Verify the UDLD state update correctly after port gets suppressed and released by the Link Flap Error Disable. + +| **Test ID** | **LinkFlapErrorDisable_Func_017** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify the UDLD state update correctly after port gets suppressed and released by the Link Flap Error Disable.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In both DUTs, configure UDLD on the physical port connecting the DUTs, check that UDLD status is updated as Bidirectional.
2. In DUT1, Configure Link Flap Error Disable on that port.
3. From DUT2, perform port flaps as per the configured flap-threshold and sampling-interval.
4. Verify that port in DUT1 gets suppressed and operational state moved to Down, and UDLD state is updated as undetermined.
5. After recovery-interval is over, verify that port gets released and operational state moved to UP and also check that UDLD state is updated as Bidirectional.
6. In DUT2, do 'ifconfig down' and check the UDLD status in DUT1 is updated as unidirectional.
7. Do 'ifconfig up' and check the UDLD status in DUT1 is updated as bidirectional.| + +#### 3.2.18 Verify the MAC learning and L2 traffic forwarding after port is suppressed and released by Link Flap Error Disable. + +| **Test ID** | **LinkFlapErrorDisable_Func_018** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify the MAC learning and L2 traffic forwarding after port is suppressed and released by Link Flap Error Disable.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) with default values for flap-threshold, sampling-interval and recovery-interval.
2.Send L2 learned traffic between TG ports, check that MAC is learned on d1port1 in DUT1 and traffic is forwarded successfully.
3. In DUT2, perform port flaps (shut/no shut) on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold and sampling-interval configured on d1port1.
3. Verify that d1port1 gets suppressed and port operational state moved to Down. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
4. Verify that MAC entries related to this port also removed from FDB table.
5. Wait until the recovery-interval expire, and verify that port gets released and port operational state is UP now.
6. Send the traffic again and check the MAC learning and traffic forwarding and also check that inter counters on this port are getting updated properly.| + +#### 3.2.19 Verify the port operational state after continuous port flaps for two consecutive recovery-interval (non-default value). + +| **Test ID** | **LinkFlapErrorDisable_Func_019** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify the port operational state after continuous port flaps for two consecutive recovery-interval (non-default value).** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical port (d1port1) with default values for flap-threshold (5), sampling-interval (10) and recovery-interval (60 s).
2. In DUT2, perform continuous port flaps (shut/no shut) for 120sec on the corresponding port (d2port1, that is connected to DUT1 port) as per flap-threshold and sampling-interval configured on d1port1.
3. Verify that in DUT1, d1port1 gets repeatedly suppressed and released and finally in suppressed state after completion of port flaps. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
4. Wait until the final recovery-interval expire, and verify that port gets released and port operational state is UP now.
5. Send the traffic and check traffic forwarding.| + +#### 3.2.20 Verify the port state after warm boot, when warm boot performed with the port is in suppressed state with non zero recovery-interval greater than warm boot time. + +| **Test ID** | **LinkFlapErrorDisable_Func_020** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify the port state after warm boot, when warm boot performed with the port is in suppressed state with non zero recovery-interval greater than warm boot time.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical ports (d1port1, d1port2, d1port3. d1port2,d2port3 are port channel member ports) with default values for flap-threshold (5), sampling-interval (10) and recovery-interval (600 s).
2. In DUT2, perform port flaps (shut/no shut) on the corresponding ports (that are connected to DUT1 port) as per flap-threshold and sampling-interval.
3. Verify that in DUT1, these ports gets suppressed and port states moved to Down state and port channel also Down. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
4. Before recovery-interval expire, perform warm boot.
5. After DUT comes UP (considering warm boot completed in 300 sec) check the link flap error disable status under "show errdisable link-flap" command, as warm boot completed before recovery-interval, ports should still be suppressed state and operational state should be down.
6. After recovery-interval expire, and verify that ports gets released and ports operational state is UP and port channel state also UP.| + +#### 3.2.21 Verify the port state after warm boot, when warm boot is performed with the port is in suppressed state with non zero recovery-interval less than warm boot time. + +| **Test ID** | **LinkFlapErrorDisable_Func_021** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify the port state after warm boot, when warm boot is performed with the port is in suppressed state with non zero recovery-interval less than warm boot time.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical ports (d1port1, d1port2, d1port3. d1port2,d2port3 are port channel member ports) with default values for flap-threshold (5), sampling-interval (10) and recovery-interval (60 s).
2. In DUT2, perform port flaps (shut/no shut) on the corresponding ports (that are connected to DUT1 port) as per flap-threshold and sampling-interval.
3. Verify that in DUT1, these ports gets suppressed and port states moved to Down state and port channel also Down. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
4. Before recovery-interval expire, perform warm boot.
5. After DUT comes UP (considering warm boot completed in 300 sec) check the link flap error disable status under "show errdisable link-flap" command, as recovery-interval expire during warm boot, ports should still be in released state and operational state should be UP and Port channel also should UP.| + +#### 3.2.22 Verify that port state gets suppressed and released as per config after Save Reboot and Fast boot. + +| **Test ID** | **LinkFlapErrorDisable_Func_022** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that port state gets suppressed and released as per config after Save Reboot and Fast boot.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the physical ports (d1port1, d1port2, d1port3. d1port2,d2port3 are port channel member ports) with default values for flap-threshold, sampling-interval and recovery-interval. Perform Save and Reboot in DUT1.
2. After DUT1 comes UP, in DUT2, perform port flaps (shut/no shut) for 120sec on the corresponding ports (that are connected to DUT1 port) as per flap-threshold and sampling-interval.
3. Verify that in DUT1, these ports gets suppressed and port states moved to Down state and port channel also Down. Verify that "show errdisable recovery" and "show errdisable link-flap" commands shows the correct status for that interface.
4. After recovery-interval expire, check the link flap error disable status under "show errdisable link-flap" command, as recovery-interval expire during warm boot, ports should be released state and operational state should be UP and Port channel also should UP.
5. Repeat the same steps after performing Fast boot in DUT1.| + +#### 3.2.23 Verify that there is no memory leak with Link Flap Error Disable feature enabled and continuous port flaps are performed on the interface. + +| **Test ID** | **LinkFlapErrorDisable_Func_023** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that there is not memory leak with Link Flap Error Disable feature enabled and continuous port flaps are performed on the interface.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on all the interfaces with non-default values for flap-threshold, sampling-interval and recovery-interval.
2. Note down the memory usage in the DUT1.
3. In DUT2, perform continuous port flaps (shut/no shut) for longer duration on the corresponding ports (that are connected to DUT1 port) as per flap-threshold and sampling-interval.
4. Verify that in DUT1, these ports gets suppressed and released as per the recovery-interval.
5. After long duration of port flaps stopped, and after recovery-interval expire, ports should be released state and operational state should be UP.
5. Note down the memory usage in DUT1.
6. Check the difference between the two readings and based on that report if there is any memory leak.| + +### 3.3 Negative Test Cases + +#### 3.3.1 Verify that user should not be allowed to configure the Link Flap Error Disable on port channel interface and Vlan interfaces. + +| **Test ID** | **LinkFlapErrorDisable_Func_024** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that user should not be allowed to configure the Link Flap Error Disable on port channel interface and Vlan interfaces.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. Try to configure Link Flap Error Disable on a port channel interface, it should not be accepted.
2. Try to configure Link Flap Error Disable on a Vlan channel interface, it should not be accepted. | + +### 3.4 Management + +#### 3.4.1 REST + +##### 3.4.1.1 Verify the Link Flap Error Disable feature via REST. + +| **Test ID** | **LinkFlapErrorDisable_Func_025** | +| -------------- | ------------------------------------------------------------ | +| **Test Name** | **Verify the Link Flap Error Disable feature via REST.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | This test case will be covered implicitly in REST run.| + +## Reference Links + https://github.com/BRCM-SONIC/sonic_doc_private/blob/master/system/intf-dampening-HLD.md \ No newline at end of file From 30c6b9be592c2cdd7f4ca7b0b2acac27b657e745 Mon Sep 17 00:00:00 2001 From: KeshavKa Date: Thu, 1 Jul 2021 06:43:40 -0700 Subject: [PATCH 4/4] added new tests as per review comments --- ..._4_0_0_Link_Flap_Error_Disable_Testplan.md | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/TestPlans/system/Link_Flap_Error_Disable/SONIC_4_0_0_Link_Flap_Error_Disable_Testplan.md b/TestPlans/system/Link_Flap_Error_Disable/SONIC_4_0_0_Link_Flap_Error_Disable_Testplan.md index 1e67a7705434..823f01455f4b 100644 --- a/TestPlans/system/Link_Flap_Error_Disable/SONIC_4_0_0_Link_Flap_Error_Disable_Testplan.md +++ b/TestPlans/system/Link_Flap_Error_Disable/SONIC_4_0_0_Link_Flap_Error_Disable_Testplan.md @@ -67,6 +67,8 @@ - Verify the port state after warm boot, with warm boot is performed when the port is in suppressed state with non zero recovery-interval less than warm boot time. - Verify the Link Flap Error Disable functionality after Reboot/FastReboot. - Verify that there is no memory leak with Link Flap Error Disable feature enabled and continuous port flaps are performed on the interface. + - Verify that interface is successfully suppressed and relased when 2K MAC entries are learned on that interface. + - Verify that interface is successfully suppressed and relased when 2K ARP/NDP entries are learned on that interface. - Verify that user should not be allowed to configure the Link Flap Error Disable on port channel interface and vlan interfaces. - Verify the Link Flap Error Disable feature via REST. @@ -341,11 +343,29 @@ Topology Description - | **Type** | **Functional** | | **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on all the interfaces with non-default values for flap-threshold, sampling-interval and recovery-interval.
2. Note down the memory usage in the DUT1.
3. In DUT2, perform continuous port flaps (shut/no shut) for longer duration on the corresponding ports (that are connected to DUT1 port) as per flap-threshold and sampling-interval.
4. Verify that in DUT1, these ports gets suppressed and released as per the recovery-interval.
5. After long duration of port flaps stopped, and after recovery-interval expire, ports should be released state and operational state should be UP.
5. Note down the memory usage in DUT1.
6. Check the difference between the two readings and based on that report if there is any memory leak.| +#### 3.2.24 Verify that interface is successfully suppressed and relased when 2K MAC entries are learned on that interface. + +| **Test ID** | **LinkFlapErrorDisable_Func_024** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that interface is successfully suppressed and relased when 2K MAC entries are learned on that interface.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the interfaces with non-default values for flap-threshold, sampling-interval and recovery-interval.
2. Send the L2 tagged traffic from TG2 such that 2K MAC entries are learned on that interface.
3. In DUT2, perform continuous port flaps (shut/no shut) for longer duration on the corresponding ports (that are connected to DUT1 port) as per flap-threshold and sampling-interval.
4. Verify that in DUT1, port gets suppressed and MAC entries on that port are cleared successfully.
5. After recovery-interval check that interface is released and interface is operationally UP.
6. Send the traffic again and check the MAC learning on that port.| + +#### 3.2.25 Verify that interface is successfully suppressed and relased when 2K ARP/NDP entries are learned on that interface. + +| **Test ID** | **LinkFlapErrorDisable_Func_025** | +| -------------- | :----------------------------------------------------------- | +| **Test Name** | **Verify that interface is successfully suppressed and relased when 2K ARP/NDP entries are learned on that interface.** | +| **Test Setup** | **Topology 1** | +| **Type** | **Functional** | +| **Steps** | 1. In DUT1, enable/configure the Link Flap Error Disable feature on the interfaces with non-default values for flap-threshold, sampling-interval and recovery-interval.
2. Send the L2 tagged traffic from TG2 such that 2K (ARP/NDP) entries are learned on that interface.
3. In DUT2, perform continuous port flaps (shut/no shut) for longer duration on the corresponding ports (that are connected to DUT1 port) as per flap-threshold and sampling-interval.
4. Verify that in DUT1, port gets suppressed and ARP/NDP entries on that port are cleared successfully.
5. After recovery-interval check that interface is released and interface is operationally UP.
6. Send the traffic again and check the ARP/NDP learning on that port.| + ### 3.3 Negative Test Cases #### 3.3.1 Verify that user should not be allowed to configure the Link Flap Error Disable on port channel interface and Vlan interfaces. -| **Test ID** | **LinkFlapErrorDisable_Func_024** | +| **Test ID** | **LinkFlapErrorDisable_Func_026** | | -------------- | :----------------------------------------------------------- | | **Test Name** | **Verify that user should not be allowed to configure the Link Flap Error Disable on port channel interface and Vlan interfaces.** | | **Test Setup** | **Topology 1** | @@ -358,7 +378,7 @@ Topology Description - ##### 3.4.1.1 Verify the Link Flap Error Disable feature via REST. -| **Test ID** | **LinkFlapErrorDisable_Func_025** | +| **Test ID** | **LinkFlapErrorDisable_Func_027** | | -------------- | ------------------------------------------------------------ | | **Test Name** | **Verify the Link Flap Error Disable feature via REST.** | | **Test Setup** | **Topology 1** |