From 614b7efd42a9bda349ab7b213a4570ad3eb5e4f9 Mon Sep 17 00:00:00 2001 From: Ahmed Karic Date: Tue, 15 Oct 2024 10:32:25 +0200 Subject: [PATCH] test: update test cases (refactor) - change topology colors - add ascii charts - apply new naming conventions (indexing) --- .../ietf_interfaces/bridge_basic/Readme.adoc | 10 +- .../case/ietf_interfaces/bridge_basic/test.py | 18 ++-- .../ietf_interfaces/bridge_basic/topology.dot | 6 +- .../ietf_interfaces/bridge_basic/topology.png | Bin 9801 -> 6863 bytes .../bridge_fwd_dual_dut/Readme.adoc | 22 ++++- .../bridge_fwd_dual_dut/test.py | 79 +++++++++------- .../bridge_fwd_dual_dut/topology.dot | 34 +++---- .../bridge_fwd_dual_dut/topology.png | Bin 21914 -> 21174 bytes .../bridge_fwd_sgl_dut/Readme.adoc | 22 ++++- .../bridge_fwd_sgl_dut/test.py | 58 +++++++----- .../bridge_fwd_sgl_dut/topology.dot | 12 +-- .../bridge_fwd_sgl_dut/topology.png | Bin 7572 -> 7668 bytes .../bridge_vlan_separation/topology.png | Bin 30422 -> 30946 bytes .../ietf_interfaces/dual_bridge/topology.png | Bin 9801 -> 6863 bytes .../iface_phys_address/Readme.adoc | 15 ++- .../iface_phys_address/topology.png | Bin 5549 -> 5640 bytes .../ietf_interfaces/igmp_vlan/Readme.adoc | 43 +++++++-- test/case/ietf_interfaces/igmp_vlan/test.py | 89 +++++++++--------- .../ietf_interfaces/igmp_vlan/topology.dot | 36 +++---- .../ietf_interfaces/igmp_vlan/topology.png | Bin 39950 -> 39616 bytes .../case/ietf_interfaces/ipv4_address/test.py | 2 +- .../ietf_interfaces/ipv4_autoconf/test.py | 4 +- .../ipv4_autoconf/topology.dot | 2 +- .../ipv4_autoconf/topology.png | Bin 9801 -> 5640 bytes .../ietf_interfaces/ipv6_address/Readme.adoc | 2 +- .../case/ietf_interfaces/ipv6_address/test.py | 2 +- .../ietf_interfaces/ipv6_address/topology.png | Bin 5549 -> 5640 bytes .../verify_all_interface_types/Readme.adoc | 2 +- .../verify_all_interface_types/test.py | 2 +- .../verify_all_interface_types/topology.dot | 8 +- .../verify_all_interface_types/topology.png | Bin 9420 -> 7903 bytes .../services_basic/topology.dot | 4 +- .../services_basic/topology.png | Bin 6906 -> 7569 bytes test/infamy/topologies/1x2.dot | 4 +- 34 files changed, 285 insertions(+), 191 deletions(-) diff --git a/test/case/ietf_interfaces/bridge_basic/Readme.adoc b/test/case/ietf_interfaces/bridge_basic/Readme.adoc index 2e23fd20..e0f2c420 100644 --- a/test/case/ietf_interfaces/bridge_basic/Readme.adoc +++ b/test/case/ietf_interfaces/bridge_basic/Readme.adoc @@ -2,6 +2,14 @@ ==== Description Test basic connectivity to a bridge +.... + + PING --> br0 (10.0.0.2) + / + PC -------- target:data + +.... + ==== Topology ifdef::topdoc[] image::../../test/case/ietf_interfaces/bridge_basic/topology.png[Bridge basic topology] @@ -15,7 +23,7 @@ image::topology.png[Bridge basic topology] endif::testgroup[] endif::topdoc[] ==== Test sequence -. Initialize +. Set up topology and attach to target DUT . Configure single bridge with a single physical port, bridge @ IP 10.0.0.2 . Verify ping 10.0.0.2 is possible from host:data diff --git a/test/case/ietf_interfaces/bridge_basic/test.py b/test/case/ietf_interfaces/bridge_basic/test.py index 0206be46..180d2126 100755 --- a/test/case/ietf_interfaces/bridge_basic/test.py +++ b/test/case/ietf_interfaces/bridge_basic/test.py @@ -1,18 +1,22 @@ #!/usr/bin/env python3 -# -# PING --> br0 10.0.0.2 -# / -# PC ---- e0 -# -""" +r""" Bridge basic Test basic connectivity to a bridge + +.... + + PING --> br0 (10.0.0.2) + / + PC -------- target:data + +.... + """ import infamy with infamy.Test() as test: - with test.step("Initialize"): + with test.step("Set up topology and attach to target DUT"): env = infamy.Env() target = env.attach("target", "mgmt") diff --git a/test/case/ietf_interfaces/bridge_basic/topology.dot b/test/case/ietf_interfaces/bridge_basic/topology.dot index d2689c6c..38968cb0 100644 --- a/test/case/ietf_interfaces/bridge_basic/topology.dot +++ b/test/case/ietf_interfaces/bridge_basic/topology.dot @@ -7,18 +7,18 @@ graph "1x2" { edge [color="cornflowerblue", penwidth="2"]; host [ - label="host | { tgt | data }", + label="host | { mgmt | data }", pos="0,12!", kind="controller", ]; target [ - label="{ mgmt | data } | target\n10.0.0.2/24 (br0)", + label="{ mgmt | data } | target", pos="10,12!", kind="infix", ]; - host:tgt -- target:mgmt [kind=mgmt] + host:mgmt -- target:mgmt [kind=mgmt, color=lightgrey] host:data -- target:data [color=black, fontcolor=black, taillabel="10.0.0.1/24"] } diff --git a/test/case/ietf_interfaces/bridge_basic/topology.png b/test/case/ietf_interfaces/bridge_basic/topology.png index a21b5282f9a67888dfe1b30805e21f56167f1095..e717c5497cc8921adaa6195528723a248381f4d9 100644 GIT binary patch literal 6863 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 literal 9801 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 TNR7mUD5*U=wKa0ptb+ar*!Y$J literal 21914 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 z z+<77nzPh#rn`$4Fhmp#4CMOV+Q5T;zDsaUK?EhwmC0ysuoueLzf5b{=9F;perT`#XQ&Tg7fCCK$y#S(a zTaO5P=|&7^TJPE)S%l=zbCN~?I`|C$0BmeE&7n&RGbz7UsIQOP)S{hkWl}koyP3%6 z6EO|DMMdqR`tCJ5AR8l4Nn|v%PNJqjCfJEY%%}SLKSOv4hoXASaBXQQ2z;<2Dz9$b z>ohxIZ`W3|9*9Pw}*!$Z4(yFeoG4Fy;Pq3j#$882f(cxVKUwL>h9#EfJ;eY#dsXUONW`M{*;W9fb+PqnL!kY`a6yd~wjQ^*2G$47b4tnA_6t~(crsd0t8$zB8 z({PTjG~Jk^h{v**YIwPONfiZN<&FcaowQeM~{m5{`Sz;)+Q#Z!|KPQ z*(>4X;h_kxe8nXs99@jOF^7*NNzIQIZM#h%K!{=$G~K${C;j88xQsm;|`0%V3VFsj}tO}NcB#Wa=#PzNE&boCK zo#K1fm48k-{!EhLl|N6;R5|qYpTRvXyT6b3$zF5!Zwy6vT>j^$Il;P6`OkRRDs^z* LVdZqC69NAV!vy4z diff --git a/test/case/ietf_interfaces/bridge_fwd_sgl_dut/Readme.adoc b/test/case/ietf_interfaces/bridge_fwd_sgl_dut/Readme.adoc index 406738bf..b54905d6 100644 --- a/test/case/ietf_interfaces/bridge_fwd_sgl_dut/Readme.adoc +++ b/test/case/ietf_interfaces/bridge_fwd_sgl_dut/Readme.adoc @@ -2,6 +2,26 @@ ==== Description Tests forwarding through a DUT with two bridged interfaces on one DUT. +.... + +,------------------------------------------, +| | +| br0 | +| / \ | +| target:mgmt target:data1 target:data2 | +'------------------------------------------' + | | | + | | | +,------------------------------------------, +| host:mgmt host:data1 host:data2 | +| [10.0.0.1] [10.0.0.2] | +| (ns0) (ns1) | +| | +| [ HOST ] | +'------------------------------------------' + +.... + ==== Topology ifdef::topdoc[] image::../../test/case/ietf_interfaces/bridge_fwd_sgl_dut/topology.png[Bridge forwarding single DUTs topology] @@ -15,7 +35,7 @@ image::topology.png[Bridge forwarding single DUTs topology] endif::testgroup[] endif::topdoc[] ==== Test sequence -. Initialize +. Set up topology and attach to target DUT . Configure a bridge with dual physical port . Verify ping from host:data0 to 10.0.0.1 diff --git a/test/case/ietf_interfaces/bridge_fwd_sgl_dut/test.py b/test/case/ietf_interfaces/bridge_fwd_sgl_dut/test.py index 6dcd1fc8..ada19e04 100755 --- a/test/case/ietf_interfaces/bridge_fwd_sgl_dut/test.py +++ b/test/case/ietf_interfaces/bridge_fwd_sgl_dut/test.py @@ -1,34 +1,40 @@ #!/usr/bin/env python3 -# ,-----------------------------------------, -# | | -# | br0 | -# | / \ | -# | target:mgmt tgt:data0 tgt:data1 | -# '-----------------------------------------' -# | | | -# | | | -# ,------------------------------------------, -# | host:mgmt host:data0 host:data1 | -# | [10.0.0.1] [10.0.0.2] | -# | (ns0) (ns1) | -# | | -# | [ HOST ] | -# '------------------------------------------' -""" +r""" Bridge forwarding single DUTs Tests forwarding through a DUT with two bridged interfaces on one DUT. + +.... + +,------------------------------------------, +| | +| br0 | +| / \ | +| target:mgmt target:data1 target:data2 | +'------------------------------------------' + | | | + | | | +,------------------------------------------, +| host:mgmt host:data1 host:data2 | +| [10.0.0.1] [10.0.0.2] | +| (ns0) (ns1) | +| | +| [ HOST ] | +'------------------------------------------' + +.... + """ import infamy with infamy.Test() as test: - with test.step("Initialize"): + with test.step("Set up topology and attach to target DUT"): env = infamy.Env() target = env.attach("target", "mgmt") with test.step("Configure a bridge with dual physical port"): - _, tport0 = env.ltop.xlate("target", "data0") _, tport1 = env.ltop.xlate("target", "data1") + _, tport2 = env.ltop.xlate("target", "data2") target.put_config_dict("ietf-interfaces", { "interfaces": { @@ -39,14 +45,14 @@ with infamy.Test() as test: "enabled": True, }, { - "name": tport0, + "name": tport1, "enabled": True, "infix-interfaces:bridge-port": { "bridge": "br0" } }, { - "name": tport1, + "name": tport2, "enabled": True, "infix-interfaces:bridge-port": { "bridge": "br0" @@ -57,15 +63,15 @@ with infamy.Test() as test: }) with test.step("Verify ping from host:data0 to 10.0.0.1"): - _, hport0 = env.ltop.xlate("host", "data0") _, hport1 = env.ltop.xlate("host", "data1") + _, hport2 = env.ltop.xlate("host", "data2") - with infamy.IsolatedMacVlan(hport0) as ns0, \ - infamy.IsolatedMacVlan(hport1) as ns1 : + with infamy.IsolatedMacVlan(hport1) as ns1, \ + infamy.IsolatedMacVlan(hport2) as ns2 : - ns1.addip("10.0.0.2") - ns0.addip("10.0.0.1") + ns2.addip("10.0.0.2") + ns1.addip("10.0.0.1") - ns0.must_reach("10.0.0.2") + ns1.must_reach("10.0.0.2") test.succeed() diff --git a/test/case/ietf_interfaces/bridge_fwd_sgl_dut/topology.dot b/test/case/ietf_interfaces/bridge_fwd_sgl_dut/topology.dot index eedd8240..2daa01c9 100644 --- a/test/case/ietf_interfaces/bridge_fwd_sgl_dut/topology.dot +++ b/test/case/ietf_interfaces/bridge_fwd_sgl_dut/topology.dot @@ -7,19 +7,19 @@ graph "1x3" { edge [color="cornflowerblue", penwidth="2"]; host [ - label="host | { tgt | data0 | data1 }", + label="host | { mgmt | data1 | data2 }", pos="0,12!", kind="controller", ]; target [ - label="{ mgmt | data0 | data1 } | target", + label="{ mgmt | data1 | data2 } | target", pos="10,12!", kind="infix", ]; - host:tgt -- target:mgmt [kind=mgmt] - host:data0 -- target:data0 [color=black, fontcolor=black, taillabel="10.0.0.1"] - host:data1 -- target:data1 [color=black, fontcolor=black, taillabel="10.0.0.2"] -} \ No newline at end of file + host:mgmt -- target:mgmt [kind=mgmt, color=lightgrey] + host:data1 -- target:data1 [color=black, fontcolor=black, taillabel="10.0.0.1"] + host:data2 -- target:data2 [color=black, fontcolor=black, taillabel="10.0.0.2"] +} diff --git a/test/case/ietf_interfaces/bridge_fwd_sgl_dut/topology.png b/test/case/ietf_interfaces/bridge_fwd_sgl_dut/topology.png index 9b66fc1b4cb569f1a82c5f8f72cdfc7e89771ff6..aa3517c8cecc1531fde1b4c7b231edd752bfcc60 100644 GIT binary patch literal 7668 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 diff --git a/test/case/ietf_interfaces/bridge_vlan_separation/topology.png b/test/case/ietf_interfaces/bridge_vlan_separation/topology.png index ba3d32a2820ab119731783bf3968629c59f82516..e587d09754896e6a11ce7f7f76a4efeb61cd1b2c 100644 GIT binary patch literal 30946 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 BcqRY< diff --git a/test/case/ietf_interfaces/dual_bridge/topology.png b/test/case/ietf_interfaces/dual_bridge/topology.png index a21b5282f9a67888dfe1b30805e21f56167f1095..e717c5497cc8921adaa6195528723a248381f4d9 100644 GIT binary patch literal 6863 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 literal 9801 zcmbVyWmHvL^zSA_P#P4Z8x@dH>5`C=?vO@BxP^zY)bejrQrYhNarRm%5$9t8wcn2Fx5!Qmv>T(f`WoO8+gpwFQTHO+a{{*eoqt0 zbU$WeW5bQ5xjV;0QMa3(o*uQewe@UON7nP~*u$jR|KZH^6VleUwuJQbo12cLGBjl| zF@z!E;U9~N9?U#UXfUpIoZb1|hk5QLuG_aMW@l%w^YC0TA;k zzx}xrySV=;HR61J>I3D%xp(g#5(uv=?srUCY+Q?n zct3l_a_7#g$@B4YD@7F*%(kTqIo;Bp67$;l)fr1WRrBM=542rjXlMtg=rfrJ?(06q z7oR?T8W9`<-01v9X~Rc4jInF5cc9lyY;4iHTWR{dj1Z zDHXs##cSHW_vhZEwy+SwZ`JwU z>1We8+UGVN2?L>!kkI(Vgyq*9)v4gTR;@D{8cMM?cs$ZsT~&pr^6m$0M*Ri2wTd~=}vuDqqp$}Bk?_eR6l#~b}^y=w&nFV_NAxs)a z=}0Gg$n~qrrnIRaKCmExB_+#@SoHLn#~Z}VA3RP!M)% zYU-~^r)GJ0efhb^j~`pLg%K@JHweMb#AIi)Wr+Kb!_%EzTwY{lF^|<`XX9#WYAPx! zVv4}$x}cZ=CDSi8?O6L!Ib30*V!HNt@a^nWotyX34m%+sA)oh_IW;x)x0UgTJ!rkh z*e{TluJGda;jdqV3kq(Mlasel&rje;%g6-vyV$M%$ozQdxowE5tMf}d3?c2HqW3#X zYQHjo{l2s`zAK)Q^~MbXdQtaZqxv2WuQ*DEa+~7Fo7&su96j-~)+cLsXHE_eoe4~> zt=S$8WJJRBn9@2pIN1NFxWK@`fc_1$U{L4E4%43S?j4D`x;iCQ!0BHNeSIpg&6&{1 zNCMNwXQ58bXIBq4rsr$up+%dHSGaI5T=@L`d$NjYUvF=j`DbkVDHIuWu!%1b5z*Rs zInI1n{OdpCieEH#j0Quzbev|;H#{5RxG-*nPa8S&RO_?-yCqAx(@3=9mU<>fEf+S&>~KjeGVpNhrF$vG24 zAyaDB9QOJ(6*mu$g^f*UMh0DmunV@Kp&=hX|K}pZO6ScP32GV|%fqc%ByelX*)b<7 zO0US^#ZUheB2iIMYJN*xn9r9P88HzN_z&KSUz2#YC;j@?!>7;fvmaq<`mn(>G$rLK z(2<3uCAO876+SNZ%=03t^F!8Krf7UKGc)@c^feyin)bGElHo#qUTbUXZo1dNI6vUm zm$}T}rxS6-y?_7y@=z8IIR(Y4`%NzRuf4tfJz&c6RNZYI9i1m{$JE=ueWT>kD?+wh zgj)bu`23FD_tt)B+n>PXf9~tM46xEkAfYdqotgNA}opj?CbI5f892^`vDStYE%$CZ>gU+j?JgMpF z7$jPrX>1s`vr@f)i)-E!tsY$z*%T(t4x*SG!5|MVpt|$XA5<3 zdOFSA+}u--7&*~b=-$umkrcBlE4_Yh)-jR&U7{WTWMyGYdA*Jt~74DUTa3b3l8x_bDhPwe&%4#U|>6xVOunB8BWjEIU# z6xRDOGLqyckTK1d*~kmFXAkl4+ff(|s#4mOAo@9nt@f({e7uu21C<33C~(j-Q; zrGr**^8X&?W_Z~F>Q_@!vpiZ%8yN33uUBkz0V%7lP8M;LhgaU~Xnw2vT-Y$f_h5rr zLV_N%>AD6u2z2|5_Gxk??M1F{C>JY))K{o>hfiYml^roLaam<01#RhE435lqdfNOt zQ594D5|c=1qgvWO>{XqIYUE3Er2oGvuzh){0!Hm zh-L7P$mt}WQGU%;S6Ce_#&D&$&knALhzQ^9+w%-H%ux!$XNFIo7L2=Owc=`|N?-bv zoo(I~M=!9c@2&3%>g8}V;9nmRy`qxRXXr|AhvK55p*&4iwC@4&WvW{tFwRbXmX<7% z&kr@`tyu3K{2-#e4hsa4H9I%=VW?*n`gnG8b5IovBqt&0Bp7kS0SVR+(xWsHHx3X@ zVTXs_*`GdvO6&62oN4qBSWNB?ud5RYj3@d15as;hO|7ml)lauVzPn82hY3SgWYyG_t_38|?O&=nR?86*&d>gTB`y5_TeTK#X>2y{^>Pvn9}m-=_wrmBq&2;ezX z=l0mgD;Qcl19~3Z%{5JZ{jTqY`egLU$g497Oh1M8p-4zbI9z%cFa&6e5yz&crpS3_8gh8ZwOsG9 z%I7pAjuB_Prs%-8ZyC6`xrcJq8O!I5KZyux-S&8kR!il3A(Sf0#DrilHhCA+6L^^L zZfzfE_pXiUhOB~uUY>^MM*?BQ^ifk&CZ@(>VqzG@aq}i4i3RjCI``jOai7*g$JzDu zV(0&C!pBb*z-%ZSeuXlEu#^KMY;$ zul)#yui+dXemh0E%xh?91cKsf8yFx4X2mBVQF!v?IxtC)O<#%&|5ATiFf4!k$B)kw z6EvZrp(u~ls~F7;a`u)_rl`lwjEoEoQ`0z%_@)>0T!{54-grZWF+EM<`T6-}6%{ft zw8M?QUX)j_&cVxhgN5K_WF}I`#wT<8AOGQWU-_m~;ADbv zdq=L)#>U1oOi#6%XPN`zWy6VQ zXWPQbCowJ4e16OoM=#c?%aU;4&x!L(Ik<)tAtH4d8SEOz>8SVbnPxiF5}|X8jBC|a zB*|p(^BG|vJA*HhIPb3+;^N`4@bQsibZNO&m$xi~Qk!OOk6njoGxENm;F7McE+rL} zTVKe$Nr!GFsUAO>9vYEUQ*3dTrDg7av;coT0`K(>);HBAEgFQdu&|)EmBBxy z0xp6Bbe?U!KuFDp07J>Dsl|;uL`Oya+SpL*;X1NhUS94#OK0C4gWd;y&#|d}4=R-% zf`x-;K7;m26>?$#QMoY9t`#auFUXXCY9wD@Uyn%YRpw=^HFVzHkx}&}Q1!A89uSsBUD7y6<_6=%4>DCWHa}u&dfMlo!_%ixckMd zp^;Nin1@0<`IjO>Mk@BS}f@#{Bl&P_X<&Bsge z+4NEtJ#4soetym}dCRau&hm?cjHE)q`Oy+pK-bg06dtWJRmxlxiW=-e2UH5v?3mFQ z^wLSm%!~y~o1L56Ha<=b5IlQ6FdD|v!E^n3OXy{)mw={#nC^c@F2u#fX$_v7V5Auy z-dtg6Q|t2Z$5l2*4Gq$rot<9`3pzHs{pp~O+TI8`@!5@X&+I@^=DxwD{TD%MF2z-5h$$4i}GuaUZW^CmQ<<6Tia7n6q% z(+UgiiszpbBV{-jiJdn$r|Q~}GH9LMiALXpINK*r_`rqC?0~c6hptRXNMIK9_jA%u z$hIN_kzu*9u@S@H3Ej}8tfJzx3I-$}W#DCc8n|4Se*f+OSb2)h%+2Ne`u)2Ng3`CJ$QrMKNq(TN9zQnP(h@jb?@_4d zr=N|o8!NE^wU16k41l+O05^P!+6LJqfULnLdysnp{+OJ=;HAYES1c@8kAhmbN=<#e zV&Lb`cUb1|Oph9=tn|0FP*whi4KrmXbjapT5&m^XO83t>ps;YvunU0T-o5R9W z@7R*Bt*?Kko>#qNqNRlmX2pGZ2n&1~WJ96gSA?Raq0}84Z9ty^|IUOUgDSKCAy8yc zjy*g){MYrl*(D_}6vQ>LAZ!yvd_lr!XlVuAemrm|Vm({rYF1ep9~en21gMBZU^JaS ztfE2yCNHp7oQvx+t)PA0ehH{>e1KzUcM@k;SDD?#FYGmaeSN`&g8%s)IlG#|(i0W)ws2i>+g^8 z%GDS}f&OVDkva{8LiV|f>l)VBUjuxx(|wthV=dx@F$oY6fi(ErbF900r3UO4DP$Ya z8B-{iU?HKxH*aVm!1}kI5p@ZyjLY$!t!bp-3u(m5%PZ2Y=;-*^vNePtA}($*Q7?U| z+W!3W{K8=5J3JwB%z~S68D; zo6pnr6@R@p^M8??d<9awc&o0s*@n%gB-9xU5rD^KOa$S@Dm#kmd(ErxM$iEOFAjXj z=%F`T5A5u}^8=~=wA%{yv$^W>DZ8Upw%RdtBIGc!t?75|R;*Dv0VT2&vjx%IGBiZGva(`1cDu6- z*a39vZjR&SOP7KwD{uGr_dl%;fJ{^VkW1Y|?X5TgVt{gHe(ipPi)%id(O((>S1m)B zSz93Qi3``ixeEvl4b7A+D)};yF?yL+YfJiHktDzKD!eiaoY|^yq$MFdcs1G(q1_ z0s=;ZroCaw1ZLM{35YbIZ+@$4iu&wWuT9lyTSu6fn=_@~vBkc4@#6U8q}wC}3$PIo z#^^5Yj>2%}<>fI62<#-WmHw4n{Ht>1%9RT*qyr%|0Q`HW1Kt7&JRrG<2nYxu2*@gX z(n%#Q4h}rnDa)};SlORHe=v^U=?I+fFxtlruqDWMy3v>F=;+9x+)}<#b@zS*OW)vN zxHMBB=y7zz2vg(pBXTgG;ozM?dSV9z1Z3yre6aocpG|}IZjM0B0heKtQDt;8-0}rqnf?Fy`@!Ei7@>? zkSWIQc-v)8?unh9)kKx;*8YB2TG}=6E?C|EGmt%4SXjK^(l2?Qcw_#$k1ikZYp68S zlQOq3VwyYn(7G&FhBsy!FWyzVD*Qt zE4gK5q+s>K!ou*N=~&Al$D|v0Cl$ZhbV3YGR~_{xDJi%knra^WLds1&RWNZ`@N|eT zzSrD^APU-wjG8*))}R`tr)DJUrZ^R}?Y$r^_?NWHdT@i7b%^`lG04wE(B z2OIQWxASj(Kfy6x*ljs)4!TmP)1$1eP9iBOIbP?+2_T-8n;Q=HVjjHAA!xfgk>}t? zB3`|sbj;BFPg+92W(hdUvd#T z=4uX7{P#IIof3c6H#bSZlQ>3v4JTo=ex`VTcusF0jCu?;KXyE$R3``+RI9?=;mL_C z_<{nTslsRsWO}YoSoFTSQ7wt*f=TZXE%r{3kn<93n0y+7k9qJC;J2yLd{GeZ0$2Sa zdINkj=U-j)#fO4;()aI5a(AVAwR{g(emNv-&OaA}f`Yd8{%FsPFM^W$1xy2BLokHU z#Eg=Ju)>+DYudSL9Z8((7>59PU$0HWO5E?oFK<|+u;?Lw!#D+a2j`6`kr`14@gPp@ zKL1QE6Yawlpv$+YdPdCYa36|3gKlp9h79FLqVijX5v&Uprlr`j;>+ z$j*M@A_+qXsGsV=uR2r*kY$cH`H6vj|9tYs4Gyso#_-p_7Z)KklwGuU-PwZdbO>%O;Dtea4gJR{>MDZ zR#NmTIoZO&;fus)gSwsQ`g&1F142QK!tt9qv>eO){aUA=alkFR7oYEb5i$|8v$LDgiGhfF>5S~}{{EswFq6YnSSx5B zuy-h*T@I(y->}7qj-SMF#vC?dz!8n8`*p`D)C)-cbc}~@UcZk2>C-2OlkXMJb8vEg zgdh;g*$MP5Kl)D8<5I3#W>9r?b$?Hxvmm_^dp8%136&uzPAm|f8(2$G1?ei(dDA}N zhZp}gtLfe{W>N_)9!%!GQo|tb-2&oGuD}&lUoU{zL#vofrlwLSc(&?8+Zw`2gjGyA zlq_;Rq!cXJsIa5zd#z9&aAgltE*WqBY<~Q(-aWzl3yk)i(#CANH^3QUK09n<1HHWk zy>>aZwY3jiKC#<{7Dv^4uHP(g)svP+a9YAh7zcE-Ah)&w#3n>08+~iXQz16#9~_LA zmy?TlSo*{T?0DbW+FB|kR?)GsS0-~lK){_-T>J&JWuZN%!xWgrMMy1nT;1KRkyK!^ z-Q8U)^|#{rHBO0e^1=sizyC$(r=mS;QJD>N0=R&>->_Mhh(W1oqg)NYfPf_=+{Lax zE8YrqQiC|A{W?5MmalxH7$Sbn9it0|iDQsZ!M?y@0Jn%p8nkr_>Ql?b{N%0hmTEn2}=3Y7a884oz$W%Ptd zIOW~DK}$y zCAF96SE1C@)CdvUJ5OGYv+aPOK<{G=0wR|(Cg^Ab{>j6LVRT|5{m;sZD}l95>%w>N z5{3o_We}$GgKo_!DFGt_lpA5ss=9M?)dx8AF&LWaV{C<xf>-P%!XBCE64SvL61AiJ%cgcjhK^ofp(dxVSwOJz%SD;Fr6+Vh!5o=T z3)&kbs|Wged$+(ZoNn-XJ$^r7?)dOfkvr>hp#H<#aJS&vwQB~Ik5sEk$iB0c2!q4f z+TAVmJT0!ud5{)#g-g#I25b38Wp4Meq~9?{cH`g?wgAqPUA-CxC%QMe?BVW$S-~7( zMMmw=kOrJrDL;%U=)9R*>Av*W>~7=k@yd5DJn1#mE1>iQu~O&-YdA>6UI`sz`!FTBcuMVu3SBrg8E%$`AaJ=A)a)1cX$4G?w1hh8~XK;&Z}3ia3Q(^ za|cI25xyg5U{A;om^1jAQ78jTT0=OYj}WhNn7j&@i*j2ccB;#^%K?8WXg?kZlFiNQ z8Ri(UJgm{#v~Q&(?QX0JWgmz`{zv`PfD*w%Bn2#njnD1^&4&YhcQ*v_c%qu8}iYAP=?%msxewahRbK=b|9xDjj)Oq^672eTtrO!! zjYBktYPvau=g_FBij&uFKVp)SVg!}>A}5D~kcbGvTpmwu2aWP%tb`s) z!bFPiZKY`w2^SG|Fp(1`6avj!R#g=OlK_a{5qAR;ZW{Q}GV31lI}Q_+aKio>f*uPe zr}z{eW96xENb2G3h8nz_;MHW9NL!#0MqLQ<{7O77zz>evqa4@jfOrJU^T#d60fb$r5vfi#gPU z@2~_P*ipdg(!xDiSsaK-w)XZypxvsft7jpg;bLO4hRnUYTXApY`(@Z6zB_l?TSG5z z!wnMsx_CIcFb8Y@WCmR~e$m4^Rs}zS1j{Pspux?+fEuDZP1|iMTg*KkNxjnJ5dvIn zxM+jGi|lM%!dxhdiwgq<2u;Sh-S_u3=C}frW59vW!t@mxO06qnNfho&$^Ttjx=yHU zN`MKRBU;}t{C|F=kx<3L&0QpUGRy>Hf%Sech*ah&*q+ffmcmu2u1W?*f?vup{`mUNd(L~#XE_l%T56{$m?;nhIjw#}sXou6D1Csuj9CeVe{1OU0JlP6H>&uza+j1v@fFg5`!S6}4~{ zwp(O)as&zFdZ#=7cXoDlyw2P-FA!~y`_|jpd27@V$#Bxp(AZx3owdUMUD4UqmGC!F z`)4_^kjO!e>g($Zlg$p&*ZH?HR`^dS8X2W3UexhmKpwpd3kxeL5zo{6xT2zWS5MCs zzi`*hCe#1=_3ITC69*-YL57oGI z=~8NHYFIs9hM)A51CQSL}%~P1}@OVvx@_}N}%ytb746N_@>gwupvcG)!(xlFxMe^y>r(E6p zLuNkqH>lix^^P5#ZN6XBl`hjV>G;{aZftls(p+Cp4?8r(9^$@&Gc+@kw`>Smts}~_ zv$ON_^GitF+e3MKd&{EZTBepq%Bk4s=;@n$oPY~zNwZt_`RXerXyoxZ`0Cz z7qEG5i-U4L+mwt6aLAW0>5d%>F09?>6%&I4rhg+`W@Tez3u>8~th)tqw)PW(spOgV zgITmn%84NbMx|}z2~GiO#k*3iKx=qw02+>eZ`PdHVZCMts)) zG@;RGwb%=WUo4ay9oM4IiJf7UkM8EjxoBu=Qj(J^q4xIonVFe+UnY&QOG!(=o6Xs4 z7plVz^CQg!(y;%19_iTU0+nI^$C5Jn5%rRlqeZ9T6 zJq6-#NXy93C_|HCw@;in(Wb^k*djrQpLY^VzJAr!)^_;uoW{yWs`E-n*$&1`MKJlz z>(@}QV^tp7g2{=CCOG)Ahx%(va7xh}91?eSc5Z8L4-O7K*jGZrYCb^^MN{6rG?9qy z==fAzTwGb{P1s%cJfOz>J4p=@dkU^ZQnGw_c(}0ch}pqwcWqK~+_yhY=iAwPdV1n7 z_DGNur2Ynv`#;=bVPQeB6&YyC8;)^9Q)qH+LRCqf(P6>njQQ@*=b$pR<@Z85t+g@o zqg`FGgj4z2OG`^zczl0fUvtcPN!vkwCL&qjj6sceX;G1rw|8ZBc6MUo**Bdl3kwV8 zml+uugA~78f0dJ!wIC!eWXR*2+uQj>M0&q}&-ncL^ZWOIVW+P)` z1;72R;Zj>)d18I=$>0}-483Cq+PXPf)9ap|$mrI5znAP7HcyvExvQ&77VR)x^7z|t zD9CHquC3xK9#~n4Kkj?~?VD6c&s=ZTtGK|>@bHtzj{~wkZ@OP$^3=vgvLyUeU{a;) zd_s0Mr}7OoweXgyqThBQ)aW-io(iPlBc&nY+DHbm@%7Ekw7DS@?<#V zp{=bgM;p^-B}(Aw32>&6tuG^ti;Ii@`0)eUVBXyLCCCCq!V?VVq$06LWmQ(y&mI!9y=?hgvy#4zutG(QJGk* z-T*t_13*)GdHHLbrm3F}>aGR&kK5YW;cER3rrVQGmgsCNawXc2l*OcZs0h>&Hg29e z71f%^Eh8nR`C51q(lhzx5`@=H}*|mC-7%O>2F9eHE1-@$72Y z*Hnnbci^et!^49E1N00GWhEsYuSKRBLQfrjBZ`xK%+D`(82`M7f2^2*g*(*v2jfs_ z`5!;3T#Ap0i76^7suUwdD1{aNvw{?L^!05XJ`7zICMne|m7o6m_hnMjzg`6}7OL5z zb<>C9+1s48wY4?mPYMqYhem3!85tff{`!?j*wki-nx31RTUydw**`j1U0hgLyHS3y zv+6KXcG|(i-QDbqMNs6`9r|=FjI7rNbpQ`y@fgMD$ zFEUbUJH+dPu}3g*IznXKYRDStv0dK~Z=OwG6`=?I(C0BDdUx;E9PKY+O~si7q@|76 zUP3hK>897Oho+>Qd#XxJcIMJ6jbuSn4ga)G>wtsha#ZH-uII*7YildkRz``M)pspu zLw$RGJd=2s0|}7#+Th^jja1D_hZGJL7{ha`H9KhK+}hfs8CT)* z=SPGU+xtOBkTA5a(k$IiZkw9=0V;ZJ&Qw%YO_^HNsa&MSReSaS{{0*H_51gU`TiV3 zLqiY@&?&GeNE#a(4f*dWDh9rNJC=Pj8KeodGC4Upw^o{kFjEwx5c6Q1JC>|y(oqtlapi6A+>G@Jyi*~3#h2b}? zq^leKYD1+w2N5T=T6x|yGeav;GcYh%Q9pPv1z3E$(X7V%?xlF0@`>BH+S*!TY69t; z0*Ua_V3mMisHWy{*CZJ1S^N z;rNLY35g@!X;%|fv*i29YZUQl%~vvN_wWFL%S$)z#9H?M>(Q#)hbvSXTc$RK1+opr4u zsu`D$7_@2>aI*shU4<9~sD-f#>%A=a@gRB~ed-jotCl`9w$L_nc)SIP- zWe(HVowkATjY;fi}>;t8`63{u^UM!_&bJ6EoyVdaBCDyl&S3<>jfjHt(ucpbI0(l!Q|>H}tDwV`E3FJoqpt5?j+mA8HsHo{MW~R9JU& zcSp;(NAC{^3JO9JGBYzJBqaWB1FsYpi!PAH)o}dg4!(l{)$6`I>;|=Qk_zqV=}7>& z?8%j%n|m3Tk)PiVVh;?*%F2qJL{(+RkCTc6o7eabiL-r++~7 z2#l8akN4_{kHm-JGK`Il0cOdcT?}UcM|8M7;s9^?YTZd2p#litspLIfU{(VW508uh z@p*2|^)d>X**Q4mNIZ{-08mJguum;7-w7c<%R$>(~5Ftpuxa9oD3| z#a-?N)f2%YAb>XPRaL_pc5@~sCc3(`s>|Wv?d?&+Cpl1;I50}a?M}rh0JQ<# zfzbox1cldH<0^d!1RFqDZvprRL82OmUS3%lo4RoNW)i=Xqa(N)&sy()2kdeFC#;LD z)S*K@cUsl`7#u8vD-#p@T2|)1^s6W+C1KR0@jBxuUa#PoC8nN`;FyM?fwot@N$*oMDK|L#4+M38&@{f7@>At5^D1T_J( zY9=<<{jJAt-0ygwUDQgKzC!u*J&EuHNLv8dANSV-4v%zIR8+vBxVx8Co>f9+0pcC<+tFt~TBN&nIYZn=!$e*DoDDHS%N=1#E z!IQ&ZEQ7PM*pu7wYil|~Wbbt_Cy?ZJPSpMJTE7J?GDO&bgO*&0`k0ieu2|<=xvEc} zmOvFkfmXXMCdI_ua&|7RObEjN8%Gcd%>xecKxun>dza#W4h{|iBZ1g4ZB_JxLB(1C z5HqZS^yA8F2WIN(t<_$eAf5&I`R_k?K)(&B5*-~K7>G!`>9i33R8TPPw=)Wk@J|gW z6DqX1tizaWNY6~?n}}IJvX|hvnMgra(9qBT7y%lzCkw6CQmQyPtw+-HL5`Uy!}9X- zFc{Xj7WSRW%1Tj%vIidZE*$kkzuI)AMR03Fy^ohXPHYh92d@)) ziZQ|AIB9*+gO3 zOI^JR(rRF6$ivNzJhTB^5OWLzD{I^i10CH@AETA<{S1dy8b#tG2ckMxA}GOX!bZEo z(JnjMgn@?Uwuy=F-=8$aG2!8AwziAF*ML4CH-0`2TsJ9i(~%=Z6zONXF={AIE-o0K zu(17@blhGZ2@k)K0Ly)KtOh)BbF*rM$}`FBd5*hsq;pz6i@E@;#>Q{J^SJ#5nZ;Ks z&!XTjD=S-lV6$$12VUC{bnN8MDnkUJb$haGh9V=CPS;AWYaSSQHJnjhjRRUei1Tm5 zyodD3^^NU^;N__ZV8ZZQTTmk~<+xS-wypDxyb;fd0Fonq#QgUL||xS)Hm-MLR~xX z9w}s27wrBOhe86CM6ElRATmaLb0ua5kP(PGkz2btJ3BY`#$`I*AN6PN*3F6QbCJ&R zEf;75p#zI(zm+vCeR9{{zTgH2OtSVT!&!6fp^P1H-{N1r8tCoq{q^hhix)jp-n^bg zg`xfbp(8&xn3T?5P=W%gV%9lk&i%UvM3JPMnXC20>4JSEXX=H=c zSIz_n{?OVQu)>w~rAAgSL`4CHB{K4-jHX{CvajK@cvksQODxO&{yw+%+Y4gW9Y5pQ zlZDLD)YOXh)aTCeFhm^^2(L9igoZYOL(Iy`s%j}JEd_!XsjnL~Hv{z+h zz%<-xQQ%=E*^0O~#BFRm!l(Zkgi&~_RccDg@@SR5<>((6W`Hs3Zf>>)^ACwVg7<-l z9F&7!(gOLIcGU$mN`oLLJB-y@Zwl4?m|BPWgm4Y`@2RMSG?4W`8TbLv3Y zW~s$(Gw})vuB3a6iCnpI_nSk3FIf-wm)bDZU_d8N8UynOum1<9B>#g)84*D0|L>IV zKO@Tp%cBh}7Mt1qzykDgCX5h~z_G)Pb|K0W*FX&be5-QM*5f|{4z*g{Dc{n;C@U+6 z@nY()*qtFm)-K6?F5EUJ8{*sY6*Z?7p|l3eh6oeBAO0WH(P#T)2%>oQkP6T2zhEKV S^96tvQNOOG@>$v9*?$2*xFRV4 literal 5549 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 diff --git a/test/case/ietf_interfaces/igmp_vlan/Readme.adoc b/test/case/ietf_interfaces/igmp_vlan/Readme.adoc index 51165e1b..a3b6d024 100644 --- a/test/case/ietf_interfaces/igmp_vlan/Readme.adoc +++ b/test/case/ietf_interfaces/igmp_vlan/Readme.adoc @@ -2,6 +2,29 @@ ==== Description Test tagged IGMP control traffic and that VLAN separation is respected for multicast +.... + + VLAN55 VLAN77 VLAN55 VLAN77 + 10.0.1.1 10.0.2.1 10.0.1.2 10.0.2.2 + \ / \ / + \ / \ / + \ / \ / + \--------------/ VLAN 1,2 T \---------------/ + | DUT1 +---------------------------------+ DUT2 | + | |dut1:link dut2:link| | + +--------------+ +-----+---------+ + | | | | + dut1:data1| |dut1:data2 dut2:data1| |dut2:data2 + VLAN55 U | | VLAN77 U VLAN55 U | | VLAN77 U + | | | | + | | | | ++-------+ | +----------+ +------------+ +--------+ +| msend +--+ | mreceive | | mreceive | | msend | ++-------+ +----------+ +------------+ +--------+ + 10.0.1.11 10.0.2.11 10.0.1.22 10.0.2.22 + +.... + ==== Topology ifdef::topdoc[] image::../../test/case/ietf_interfaces/igmp_vlan/topology.png[IGMP VLAN topology] @@ -15,17 +38,17 @@ image::topology.png[IGMP VLAN topology] endif::testgroup[] endif::topdoc[] ==== Test sequence -. Initialize +. Set up topology and attach to target DUT . Configure device -. Start multicast sender on host:data10, group 224.2.2.2 -. Start multicast sender on host:data21, group 224.1.1.1 -. Verify group 224.2.2.2 is flooded to host:data20 -. Verify group 224.1.1.1 is flooded to host:data11 -. Verify group 224.2.2.2 on host:data10, 224.1.1.1 on host:data20, 224.2.2.2 on host:data11 and 224.1.1.1 on host:data21 is not received -. Join multicast group 224.2.2.2 on host:data20 -. Verify group 224.2.2.2 on host:data10, 224.1.1.1 on host:data20, 224.2.2.2 on host:data11 and 224.1.1.1 on host:data21 is not received -. Verify group 224.2.2.2 is forwarded to host:data20 -. Verify group 224.1.1.1 is forwarded to host:data11 +. Start multicast sender on host:data11, group 224.2.2.2 +. Start multicast sender on host:data22, group 224.1.1.1 +. Verify group 224.2.2.2 is flooded to host:data21 +. Verify group 224.1.1.1 is flooded to host:data12 +. Verify group 224.2.2.2 on host:data11, 224.1.1.1 on host:data21, 224.2.2.2 on host:data12 and 224.1.1.1 on host:data22 is not received +. Join multicast group 224.2.2.2 on host:data21 +. Verify group 224.2.2.2 on host:data11, 224.1.1.1 on host:data21, 224.2.2.2 on host:data12 and 224.1.1.1 on host:data22 is not received +. Verify group 224.2.2.2 is forwarded to host:data21 +. Verify group 224.1.1.1 is forwarded to host:data12 <<< diff --git a/test/case/ietf_interfaces/igmp_vlan/test.py b/test/case/ietf_interfaces/igmp_vlan/test.py index 74972749..ec4eaa58 100755 --- a/test/case/ietf_interfaces/igmp_vlan/test.py +++ b/test/case/ietf_interfaces/igmp_vlan/test.py @@ -1,53 +1,54 @@ #!/usr/bin/env python3 -# -# -# VLAN55 VLAN77 VLAN55 VLAN77 -# 10.0.1.1 10.0.2.1 10.0.1.2 10.0.2.2 -# \ / \ / -# \ / \ / -# \ / \ / -# \--------------/ VLAN 1,2 T \---------------/ -# | DUT1 +---------------------------------+ DUT2 | -# | | | | -# +--------------+ +-----+---------+ -# VLAN55 U| VLAN77 U| VLAN55 U | | VLAN77 U -# | | | | -# | | | | -# | | | | -# | | | | -# +-------+ | +----------+ +------------+ +--------+ -# | msend +--+ | mreceive | | mreceive | | msend | -# +-------+ +----------+ +------------+ +--------+ -# 10.0.1.11 10.0.2.11 10.0.1.22 10.0.2.22 -# - -""" +r""" IGMP VLAN Test tagged IGMP control traffic and that VLAN separation is respected for multicast + +.... + + VLAN55 VLAN77 VLAN55 VLAN77 + 10.0.1.1 10.0.2.1 10.0.1.2 10.0.2.2 + \ / \ / + \ / \ / + \ / \ / + \--------------/ VLAN 1,2 T \---------------/ + | DUT1 +---------------------------------+ DUT2 | + | |dut1:link dut2:link| | + +--------------+ +-----+---------+ + | | | | + dut1:data1| |dut1:data2 dut2:data1| |dut2:data2 + VLAN55 U | | VLAN77 U VLAN55 U | | VLAN77 U + | | | | + | | | | ++-------+ | +----------+ +------------+ +--------+ +| msend +--+ | mreceive | | mreceive | | msend | ++-------+ +----------+ +------------+ +--------+ + 10.0.1.11 10.0.2.11 10.0.1.22 10.0.2.22 + +.... + """ import infamy -import time import infamy.multicast as mcast from infamy.util import parallel with infamy.Test() as test: - with test.step("Initialize"): + with test.step("Set up topology and attach to target DUT"): env = infamy.Env() dut1 = env.attach("dut1", "mgmt") - _, d1send = env.ltop.xlate("dut1", "data0") - _, d1receiver = env.ltop.xlate("dut1", "data1") - _, d1trunk = env.ltop.xlate("dut1", "data2") + _, d1send = env.ltop.xlate("dut1", "data1") + _, d1receiver = env.ltop.xlate("dut1", "data2") + _, d1trunk = env.ltop.xlate("dut1", "link") dut2 = env.attach("dut2", "mgmt") - _, d2receive = env.ltop.xlate("dut2", "data0") - _, d2sender = env.ltop.xlate("dut2", "data1") - _, d2trunk = env.ltop.xlate("dut2", "data2") + _, d2receive = env.ltop.xlate("dut2", "data1") + _, d2sender = env.ltop.xlate("dut2", "data2") + _, d2trunk = env.ltop.xlate("dut2", "link") - _, hsendd1 = env.ltop.xlate("host", "data10") - _, hreceived1 = env.ltop.xlate("host", "data11") - _, hreceived2 = env.ltop.xlate("host", "data20") - _, hsendd2 = env.ltop.xlate("host", "data21") + _, hsendd1 = env.ltop.xlate("host", "data11") + _, hreceived1 = env.ltop.xlate("host", "data12") + _, hreceived2 = env.ltop.xlate("host", "data21") + _, hsendd2 = env.ltop.xlate("host", "data22") with test.step("Configure device"): @@ -264,33 +265,33 @@ with infamy.Test() as test: d2send_ns.addip("10.0.2.22") d1send_ns.must_reach("10.0.1.2") d1receive_ns.must_reach("10.0.2.2") - with test.step("Start multicast sender on host:data10, group 224.2.2.2"): + with test.step("Start multicast sender on host:data11, group 224.2.2.2"): vlan55_sender = mcast.MCastSender(d2send_ns, "224.2.2.2") - with test.step("Start multicast sender on host:data21, group 224.1.1.1"): + with test.step("Start multicast sender on host:data22, group 224.1.1.1"): vlan77_sender= mcast.MCastSender(d1send_ns, "224.1.1.1") with vlan55_sender, vlan77_sender: - with test.step("Verify group 224.2.2.2 is flooded to host:data20"): + with test.step("Verify group 224.2.2.2 is flooded to host:data21"): d1receive_ns.must_receive("ip dst 224.2.2.2") - with test.step("Verify group 224.1.1.1 is flooded to host:data11"): + with test.step("Verify group 224.1.1.1 is flooded to host:data12"): d2receive_ns.must_receive("ip dst 224.1.1.1") - with test.step("Verify group 224.2.2.2 on host:data10, 224.1.1.1 on host:data20, 224.2.2.2 on host:data11 and 224.1.1.1 on host:data21 is not received"): + with test.step("Verify group 224.2.2.2 on host:data11, 224.1.1.1 on host:data21, 224.2.2.2 on host:data12 and 224.1.1.1 on host:data22 is not received"): parallel(d1send_ns.must_not_receive("host 224.2.2.2"), d1receive_ns.must_not_receive("host 224.1.1.1"), d2receive_ns.must_not_receive("host 224.2.2.2"), d2send_ns.must_not_receive("host 224.1.1.1")) - with test.step("Join multicast group 224.2.2.2 on host:data20"): + with test.step("Join multicast group 224.2.2.2 on host:data21"): vlan55_receiver = mcast.MCastReceiver(d1receive_ns, "224.2.2.2") with vlan55_receiver: - with test.step("Verify group 224.2.2.2 on host:data10, 224.1.1.1 on host:data20, 224.2.2.2 on host:data11 and 224.1.1.1 on host:data21 is not received"): + with test.step("Verify group 224.2.2.2 on host:data11, 224.1.1.1 on host:data21, 224.2.2.2 on host:data12 and 224.1.1.1 on host:data22 is not received"): parallel(d1send_ns.must_not_receive("host 224.2.2.2"), d1receive_ns.must_not_receive("host 224.1.1.1"), d1send_ns.must_not_receive("host 224.2.2.2"), d2send_ns.must_not_receive("host 224.1.1.1")) - with test.step("Verify group 224.2.2.2 is forwarded to host:data20"): + with test.step("Verify group 224.2.2.2 is forwarded to host:data21"): d1receive_ns.must_receive("host 224.2.2.2") - with test.step("Verify group 224.1.1.1 is forwarded to host:data11"): + with test.step("Verify group 224.1.1.1 is forwarded to host:data12"): d2receive_ns.must_receive("ip dst 224.1.1.1") test.succeed() diff --git a/test/case/ietf_interfaces/igmp_vlan/topology.dot b/test/case/ietf_interfaces/igmp_vlan/topology.dot index a49fef1e..dc97ed5f 100644 --- a/test/case/ietf_interfaces/igmp_vlan/topology.dot +++ b/test/case/ietf_interfaces/igmp_vlan/topology.dot @@ -7,32 +7,32 @@ graph "2x4" { edge [color="cornflowerblue", penwidth="2"]; host [ - label="host | { mgmt1 | data10 | data11 | <> \n\n\n | mgmt2 | data20 | data21 }", - pos="0,15!", - kind="controller", + label="host | { mgmt1 | data11 | data12 | <> \n\n\n | mgmt2 | data21 | data22 }", + pos="0,15!", + kind="controller", ]; dut1 [ - label="{ mgmt | data0 | data1 } | { dut1 \nVLAN55: 10.0.1.1 \nVLAN77: 10.0.2.1 | data2 }", - pos="3,15.4!", - fontsize=12, - kind="infix", + label="{ mgmt | data1 | data2 } | { dut1 \nVLAN55: 10.0.1.1 \nVLAN77: 10.0.2.1 | link }", + pos="3,15.4!", + fontsize=12, + kind="infix", ]; dut2 [ - label="{ mgmt | data0 | data1 } | { data2 | dut2 \nVLAN55: 10.0.1.2 \nVLAN77: 10.0.2.2\n }", - pos="3,14.6!", - fontsize=12, - kind="infix", + label="{ mgmt | data1 | data2 } | { link | dut2 \nVLAN55: 10.0.1.2 \nVLAN77: 10.0.2.2\n }", + pos="3,14.6!", + fontsize=12, + kind="infix", ]; - host:mgmt1 -- dut1:mgmt [kind=mgmt] - host:data10 -- dut1:data0 [color=purple, fontcolor=purple, taillabel="10.0.1.11", headlabel="VLAN55 U"] - host:data11 -- dut1:data1 [color=darkgreen, fontcolor=darkgreen, taillabel="10.0.2.11", headlabel="VLAN77 U"] + host:mgmt1 -- dut1:mgmt [kind=mgmt, color=lightgrey] + host:data11 -- dut1:data1 [color=purple, fontcolor=purple, taillabel="10.0.1.11", headlabel="VLAN55 U"] + host:data12 -- dut1:data2 [color=darkgreen, fontcolor=darkgreen, taillabel="10.0.2.11", headlabel="VLAN77 U"] - host:mgmt2 -- dut2:mgmt [kind=mgmt] - host:data20 -- dut2:data0 [color=purple, fontcolor=purple, taillabel="10.0.1.22", headlabel="VLAN55 U"] - host:data21 -- dut2:data1 [color=darkgreen, fontcolor=darkgreen, taillabel="10.0.2.22", headlabel="VLAN77 U"] + host:mgmt2 -- dut2:mgmt [kind=mgmt, color=lightgrey] + host:data21 -- dut2:data1 [color=purple, fontcolor=purple, taillabel="10.0.1.22", headlabel="VLAN55 U"] + host:data22 -- dut2:data2 [color=darkgreen, fontcolor=darkgreen, taillabel="10.0.2.22", headlabel="VLAN77 U"] - dut1:data2 -- dut2:data2 [color=black, fontcolor=black, label="VLAN 1,2 T"] + dut1:link -- dut2:link [color=black, fontcolor=black, label="VLAN 1,2 T"] } \ No newline at end of file diff --git a/test/case/ietf_interfaces/igmp_vlan/topology.png b/test/case/ietf_interfaces/igmp_vlan/topology.png index ae902bc78f5b23b07a170e2dd0cb1852bf41dca7..d37f0967203ec132e5f1d04090228f5fc9c0292c 100644 GIT binary patch literal 39616 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 z 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 Mb@6Pvr0%`{2LPryUjP6A literal 39950 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 T@3gC?;MYmT(+a6_re6OSUFq)U diff --git a/test/case/ietf_interfaces/ipv4_address/test.py b/test/case/ietf_interfaces/ipv4_address/test.py index 77d98e73..0b8af550 100755 --- a/test/case/ietf_interfaces/ipv4_address/test.py +++ b/test/case/ietf_interfaces/ipv4_address/test.py @@ -4,7 +4,7 @@ Interface with IPv4 Test that it is possible to set and remove the IPv4 address on an interface """ -import copy + import infamy import infamy.iface as iface diff --git a/test/case/ietf_interfaces/ipv4_autoconf/test.py b/test/case/ietf_interfaces/ipv4_autoconf/test.py index 99aa59a3..f721e478 100755 --- a/test/case/ietf_interfaces/ipv4_autoconf/test.py +++ b/test/case/ietf_interfaces/ipv4_autoconf/test.py @@ -1,7 +1,4 @@ #!/usr/bin/env python3 -# -# PC ---- e0: 10.0.0.2 -# """ IPv4 link-local @@ -9,6 +6,7 @@ Verifies that link-local (IPv4LL/ZeroConf) address assignment work as expected. Checks random address, the request-address setting, and address removal on autoconf disable. """ + import ipaddress import infamy import infamy.iface diff --git a/test/case/ietf_interfaces/ipv4_autoconf/topology.dot b/test/case/ietf_interfaces/ipv4_autoconf/topology.dot index a7fee698..4f53d15a 120000 --- a/test/case/ietf_interfaces/ipv4_autoconf/topology.dot +++ b/test/case/ietf_interfaces/ipv4_autoconf/topology.dot @@ -1 +1 @@ -../bridge_basic/topology.dot \ No newline at end of file +../../../infamy/topologies/1x2.dot \ No newline at end of file diff --git a/test/case/ietf_interfaces/ipv4_autoconf/topology.png b/test/case/ietf_interfaces/ipv4_autoconf/topology.png index a21b5282f9a67888dfe1b30805e21f56167f1095..5444e060bae54b3f163f8b593610b6b4c1b4f833 100644 GIT binary patch literal 5640 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 S^96tvQNOOG@>$v9*?$2*xFRV4 literal 9801 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 S^96tvQNOOG@>$v9*?$2*xFRV4 literal 5549 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 diff --git a/test/case/ietf_interfaces/verify_all_interface_types/Readme.adoc b/test/case/ietf_interfaces/verify_all_interface_types/Readme.adoc index 6cc66ae7..20d26831 100644 --- a/test/case/ietf_interfaces/verify_all_interface_types/Readme.adoc +++ b/test/case/ietf_interfaces/verify_all_interface_types/Readme.adoc @@ -27,7 +27,7 @@ image::topology.png[Verify that all interface types can be created topology] endif::testgroup[] endif::topdoc[] ==== Test sequence -. Initialize +. Set up topology and attach to target DUT . Configure an empty bridge br-0 . Configure bridge br-X and associated interfaces . Configure VETH pair diff --git a/test/case/ietf_interfaces/verify_all_interface_types/test.py b/test/case/ietf_interfaces/verify_all_interface_types/test.py index 8b4ce37b..e00585b4 100755 --- a/test/case/ietf_interfaces/verify_all_interface_types/test.py +++ b/test/case/ietf_interfaces/verify_all_interface_types/test.py @@ -34,7 +34,7 @@ def verify_interface(target, interface, expected_type): with infamy.Test() as test: - with test.step("Initialize"): + with test.step("Set up topology and attach to target DUT"): env = infamy.Env() target = env.attach("target", "mgmt") diff --git a/test/case/ietf_interfaces/verify_all_interface_types/topology.dot b/test/case/ietf_interfaces/verify_all_interface_types/topology.dot index c0b81385..fd14ce15 100644 --- a/test/case/ietf_interfaces/verify_all_interface_types/topology.dot +++ b/test/case/ietf_interfaces/verify_all_interface_types/topology.dot @@ -7,7 +7,7 @@ graph "1x3" { edge [color="cornflowerblue", penwidth="2"]; host [ - label="host | { tgt | dummy0 | dummy1 }", + label="host | { mgmt | data1 | data2 }", pos="0,12!", kind="controller", ]; @@ -19,7 +19,7 @@ graph "1x3" { kind="infix", ]; - host:tgt -- target:mgmt [kind=mgmt] - host:dummy0 -- target:ethX [color=black] - host:dummy1 -- target:ethQ [color=black] + host:mgmt -- target:mgmt [kind=mgmt, color=lightgrey] + host:data1 -- target:ethX [color=black] + host:data2 -- target:ethQ [color=black] } diff --git a/test/case/ietf_interfaces/verify_all_interface_types/topology.png b/test/case/ietf_interfaces/verify_all_interface_types/topology.png index 7a8192439bde7120e3591b2cd1a5b61566da7eae..2756442978b06aaadb6c9102b09d0d8a7219380f 100644 GIT binary patch literal 7903 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 DBfBsa literal 9420 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 diff --git a/test/case/infix_services/services_basic/topology.dot b/test/case/infix_services/services_basic/topology.dot index f985645d..2884294d 100644 --- a/test/case/infix_services/services_basic/topology.dot +++ b/test/case/infix_services/services_basic/topology.dot @@ -7,7 +7,7 @@ graph "1x2" { edge [color="cornflowerblue", penwidth="2"]; host [ - label="host | { tgt | data }", + label="host | { mgmt | data }", pos="0,12!", kind="controller", ]; @@ -19,7 +19,7 @@ graph "1x2" { kind="infix", ]; - host:tgt -- target:mgmt [kind=mgmt] + host:mgmt -- target:mgmt [kind=mgmt, color=lightgrey] host:data -- target:data [color=black, fontcolor=black, fontsize=12, taillabel="10.0.0.1/24", headlabel="10.0.0.10/24"] } diff --git a/test/case/infix_services/services_basic/topology.png b/test/case/infix_services/services_basic/topology.png index 239b81e8dbd9a5489c0c9f85b0e5004b4ef19e56..cf77bcb07207a7ca48ec4d122833e87abb702066 100644 GIT binary patch literal 7569 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 diff --git a/test/infamy/topologies/1x2.dot b/test/infamy/topologies/1x2.dot index ca5f0b38..8891e6a2 100644 --- a/test/infamy/topologies/1x2.dot +++ b/test/infamy/topologies/1x2.dot @@ -7,7 +7,7 @@ graph "1x2" { edge [color="cornflowerblue", penwidth="2"]; host [ - label="host | { tgt | data }", + label="host | { mgmt | data }", pos="0,12!", kind="controller", ]; @@ -19,6 +19,6 @@ graph "1x2" { kind="infix", ]; - host:tgt -- target:mgmt [kind=mgmt] + host:mgmt -- target:mgmt [kind=mgmt, color=lightgrey] host:data -- target:data [color=black] }