tests: Add multicast-pim-bsm-topo1 suite

1. Added 8 testcases to verify PIM BSM functionality. Here we have used Scapy
   to send raw packet, generated using Cisco and FRR. Raw packets are kept in
   JSON file and sent tests on-demand in script.

Signed-off-by: Kuldeep Kashyap <kashyapk@vmware.com>
This commit is contained in:
Kuldeep Kashyap 2020-10-01 11:01:42 +00:00 committed by kuldeepkash
parent f40b18e8bb
commit df94c7e840
2 changed files with 1891 additions and 0 deletions

View File

@ -0,0 +1,238 @@
{
"ipv4base": "10.0.0.0",
"ipv4mask": 24,
"link_ip_start": {"ipv4": "10.0.0.0", "v4mask": 24},
"lo_prefix": {"ipv4": "1.0.", "v4mask": 32},
"routers": {
"b1": {
"links": {
"f1": {"ipv4": "auto", "pim": "enable"},
"lo": {"ipv4": "auto", "type": "loopback", "pim": "enable"}
},
"bsm": {
"bsr_packets": {
"packet1" : {
"data": "01005e00000d005056961165080045c000aa5af500000167372a46000001e000000d2400f5ce165b000001004600000101000018e1010100080800000100090a090a0096650001000909090a0096660001000708090a00966700010007070907009668000100070702070096690001000705020700966a0001000702020700966b0001000202020200966c0001000020e1010101010100000100050606050096000001000020e20101010101000001000909090900960000",
"src_ip": "70.0.0.1/24",
"dest_ip": "70.0.0.2/24",
"bsr": "70.0.0.1/24",
"pkt_dst": "224.0.0.13",
"rp_mapping" : {
"225.1.1.0/24": ["9.10.9.10/32", "7.8.9.10/32",
"9.9.9.10/32", "7.7.9.7/32",
"7.7.2.7/32", "7.5.2.7/32",
"7.2.2.7/32", "2.2.2.2/32"],
"225.1.1.1/32": ["5.6.6.5/32"],
"225.200.100.100/32": ["210.210.210.210/32"],
"226.1.1.1/32": ["9.9.9.9/32"]
},
"Desc" : "Packet with 3 group range - rp prio different"
},
"packet2" : {
"data": "01005e00000d005056961165080045c0009420f400000167714146000001e000000d24000b3b164a000001004600000101000018e1010100080800000100020202020096640001000909090a0096640001000707020700966400010007020207009664000100070709070096640001000708090a00966400010007050207009664000100090a090a0096640001000020e20101010101000001000909090900000000",
"src_ip": "70.0.0.1/24",
"dest_ip": "70.0.0.2/24",
"bsr": "70.0.0.1/24",
"pkt_dst": "224.0.0.13",
"rp_mapping" : {
"225.1.1.0/24": ["9.10.9.10/32", "7.8.9.10/32",
"9.9.9.10/32", "7.7.9.7/32",
"7.7.2.7/32", "7.5.2.7/32",
"7.2.2.7/32", "2.2.2.2/32"]
},
"Desc" : "Packet 1 with hold time 0 for 226.1.1.1/32"
},
"packet3" : {
"data": "01005e00000d005056961165080045c000944d0000000167453546000001e000000d2400e52b17c3000001004600000101000018e1010100080800000100090a090a0096650001000909090a0096660001000708090a00966700010007070907009668000100070702070096690001000705020700966a0001000702020700966b0001000202020200966c0001000020e20101010101000001000909090900960000",
"src_ip": "70.0.0.1/24",
"dest_ip": "70.0.0.2/24",
"bsr": "70.0.0.1/24",
"pkt_dst": "224.0.0.13",
"rp_mapping" : {
"225.1.1.0/24": ["9.10.9.10/32", "7.8.9.10/32",
"9.9.9.10/32", "7.7.9.7/32",
"7.7.2.7/32", "7.5.2.7/32",
"7.2.2.7/32", "2.2.2.2/32"],
"226.1.1.1/32": ["9.9.9.9/32"]
},
"Desc" : "BSR Prio - TC 4"
},
"packet4" : {
"data": "01005e00000d005056961165080045c000aa3d1c00000167550346000001e000000d24000d671c52000001004600000101000018e1010100080800000100020202020096640001000909090a0096640001000707020700966400010007020207009664000100070709070096640001000708090a00966400010007050207009664000100090a090a0096640001000020e1010101010100000100090909090000000001000020e20101010101000001000909090900960000",
"src_ip": "70.0.0.1/24",
"dest_ip": "70.0.0.2/24",
"bsr": "70.0.0.1/24",
"pkt_dst": "224.0.0.13",
"rp_mapping" : {
"225.1.1.0/24": ["9.10.9.10/32", "7.8.9.10/32",
"9.9.9.10/32", "7.7.9.7/32",
"7.7.2.7/32", "7.5.2.7/32",
"7.2.2.7/32", "2.2.2.2/32"],
"225.1.1.1/32": ["9.9.9.9/32"],
"226.1.1.1/32": ["9.9.9.9/32"]
},
"Desc" : "TC - 5"
},
"packet5" : {
"data": "01005e00000d005056961165080045c000aa3d1c00000167550346000001e000000d24000d671c52000001004600000101000018e1010100080800000100020202020096640001000909090a0096640001000707020700966400010007020207009664000100070709070096640001000708090a00966400010007050207009664000100090a090a0096640001000020e1010101010100000100090909090000000001000020e20101010101000001000909090900960000",
"src_ip": "70.0.0.1/24",
"dest_ip": "70.0.0.2/24",
"bsr": "70.0.0.1/24",
"pkt_dst": "224.0.0.13",
"rp_mapping" : {
"225.1.1.0/24": ["9.10.9.10/32", "7.8.9.10/32",
"9.9.9.10/32", "7.7.9.7/32",
"7.7.2.7/32", "7.5.2.7/32",
"7.2.2.7/32", "2.2.2.2/32"],
"226.1.1.1/32": ["9.9.9.9/32"]
},
"Desc" : "TC - 5, 225.1.1.1 with hold time 0"
},
"packet6" : {
"data": "01005e00000d005056961165080045c0008a795e0000016718e146000001e000000d24006cc509d5000001004600000101000018e10101000707000001000909090a0096660001000708090a00966700010007070907009668000100070702070096690001000705020700966a0001000702020700966b0001000202020200966c0001000020e20101010101000001000909090900960000",
"src_ip": "70.0.0.1/24",
"dest_ip": "70.0.0.2/24",
"bsr": "70.0.0.1/24",
"pkt_dst": "224.0.0.13",
"rp_mapping" : {
"225.1.1.0/24": ["7.8.9.10/32",
"9.9.9.10/32", "7.7.9.7/32",
"7.7.2.7/32", "7.5.2.7/32",
"7.2.2.7/32", "2.2.2.2/32"],
"226.1.1.1/32": ["9.9.9.9/32"]
},
"Desc" : "TC - 6,High prio rp removed on 225.1.1.0/24"
},
"packet7" : {
"data": "01005e00000d005056961165080045c0007e6ebb00000167239046000001e000000d2400090810b3000001004600000101000018e1010100080800000100020202020096640001000909090a0096640001000707020700966400010007020207009664000100070709070096640001000708090a00966400010007050207009664000100090a090a00966400",
"src_ip": "70.0.0.1/24",
"dest_ip": "70.0.0.2/24",
"bsr": "70.0.0.1/24",
"pkt_dst": "224.0.0.13",
"rp_mapping" : {
"225.1.1.0/24": ["9.10.9.10/32", "7.8.9.10/32",
"9.9.9.10/32", "7.7.9.7/32",
"7.7.2.7/32", "7.5.2.7/32",
"7.2.2.7/32", "2.2.2.2/32"]
},
"Desc" : "TC - 8, rps with same priority"
},
"packet8" : {
"data": "01005e00000d005056b76687080045c000383cdf0000016755b246000001e000000d24008ad51a9f000001004600000101000020e1c86464010100000100d2d2d2d200960000",
"group": "225.200.100.100/32",
"src_ip": "70.0.0.1/24",
"dest_ip": "70.0.0.2/24",
"bsr": "70.0.0.1/24",
"pkt_dst": "224.0.0.13",
"rp_mapping" : {
"225.200.100.100/32": ["210.210.210.210/32"]
},
"Desc" : "TC - 30, grp add with all octet"
},
"packet9" : {
"data": "01005e00000d005056b76687080045c000387b8600000167170b46000001e000000d2400c6282245000001000101020701000020e1c86464010100000100d2d2d2d200960000",
"group": "225.200.100.100/32",
"candidate_rp": "210.210.210.210/32",
"src_ip": "70.0.0.1/24",
"dest_ip": "70.0.0.2/24",
"bsr": "1.1.2.7/32",
"pkt_dst": "224.0.0.13",
"rp_mapping" : {
"225.200.100.100/32": ["210.210.210.210/32"]
},
"Desc" : "TC -29, BSM with preferred ip"
}
}
}
},
"b2": {
"links": {
"f1": {"ipv4": "auto", "pim": "enable"},
"lo": {"ipv4": "auto", "type": "loopback", "pim": "enable"}
},
"bsm": {
"bsr_packets": {
"packet1" : {
"data": "01005e00000d005056b70489080045c0003865db0000016731b641000001e000000d2400659c0c6f000001004100000101000018e10101000101000001002121212100960000",
"src_ip": "65.0.0.1/24",
"dest_ip": "65.0.0.2/24",
"bsr": "65.0.0.1/24",
"pkt_dst": "224.0.0.13",
"rp_mapping" : {
"225.1.1.0/24": ["33.33.33.33/32"],
"225.200.100.100/32": ["210.210.210.210/32"]
}
},
"packet2" : {
"data": "01005e00000d005056b70489080045c00038663000000167316141000001e000000d24006dce0433000a01004100000101000018e10101000101000001002121212100960000",
"src_ip": "65.0.0.1/24",
"dest_ip": "65.0.0.2/24",
"bsr": "65.0.0.1/24",
"pkt_dst": "224.0.0.13",
"rp_mapping" : {
"225.1.1.0/24": ["33.33.33.33/32"]
}
},
"packet3" : {
"data": "01005e00000d005056b76687080045c00038f5c800000167a1c841000001e000000d2400c6621a10000001000a02010101000020e1c86464010100000100d2d2d2d200960000",
"src_ip": "65.0.0.1/24",
"dest_ip": "65.0.0.2/24",
"bsr": "10.2.1.1/32",
"pkt_dst": "224.0.0.13",
"rp_mapping" : {
"225.200.100.100/32": ["210.210.210.210/32"]
}
}
}
}
},
"f1": {
"links": {
"b1": {"ipv4": "auto", "pim": "enable"},
"b2": {"ipv4": "auto", "pim": "enable"},
"i1": {"ipv4": "auto", "pim": "enable"},
"s1": {"ipv4": "auto", "pim": "enable"}
}
},
"i1": {
"links": {
"lo": {"ipv4": "auto", "type": "loopback", "pim": "enable"},
"f1": {"ipv4": "auto", "pim": "enable"},
"l1": {"ipv4": "auto", "pim": "enable"}
}
},
"l1": {
"links": {
"i1": {"ipv4": "auto", "pim": "enable"},
"r1": {"ipv4": "auto", "pim": "enable"}
},
"igmp": {
"interfaces": {
"l1-r1-eth1" :{
"igmp":{
"version": "2"
}
}
}
}
},
"s1": {
"links": {
"f1": {"ipv4": "auto", "pim": "enable"}
}
},
"r1": {
"links": {
"l1": {"ipv4": "auto", "pim": "disable"}
}
}
}
}

File diff suppressed because it is too large Load Diff