Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

selftests: vxlan_mdb: Fix failures with old libnet

Locally generated IP multicast packets (such as the ones used in the
test) do not perform routing and simply egress the bound device.

However, as explained in commit 8bcfb4ae4d97 ("selftests: forwarding:
Fix failing tests with old libnet"), old versions of libnet (used by
mausezahn) do not use the "SO_BINDTODEVICE" socket option. Specifically,
the library started using the option for IPv6 sockets in version 1.1.6
and for IPv4 sockets in version 1.2. This explains why on Ubuntu - which
uses version 1.1.6 - the IPv4 overlay tests are failing whereas the IPv6
ones are passing.

Fix by specifying the source and destination MAC of the packets which
will cause mausezahn to use a packet socket instead of an IP socket.

Fixes: 62199e3f1658 ("selftests: net: Add VXLAN MDB test")
Reported-by: Mirsad Todorovac <mirsad.todorovac@alu.unizg.hr>
Closes: https://lore.kernel.org/netdev/5bb50349-196d-4892-8ed2-f37543aa863f@alu.unizg.hr/
Tested-by: Mirsad Todorovac <mirsad.todorovac@alu.unizg.hr>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Link: https://lore.kernel.org/r/20240325075030.2379513-1-idosch@nvidia.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>

authored by

Ido Schimmel and committed by
Paolo Abeni
f1425529 8c05813d

+128 -77
+128 -77
tools/testing/selftests/net/test_vxlan_mdb.sh
··· 1177 1177 local plen=$1; shift 1178 1178 local enc_ethtype=$1; shift 1179 1179 local grp=$1; shift 1180 + local grp_dmac=$1; shift 1180 1181 local src=$1; shift 1181 1182 local mz=$1; shift 1182 1183 ··· 1196 1195 run_cmd "bridge -n $ns1 mdb replace dev vx0 port vx0 grp $grp permanent dst $vtep2_ip src_vni 10020" 1197 1196 1198 1197 run_cmd "tc -n $ns2 filter replace dev vx0 ingress pref 1 handle 101 proto all flower enc_dst_ip $vtep1_ip action pass" 1199 - run_cmd "ip netns exec $ns1 $mz br0.10 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1198 + run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1200 1199 tc_check_packets "$ns2" "dev vx0 ingress" 101 1 1201 1200 log_test $? 0 "Destination IP - match" 1202 1201 1203 - run_cmd "ip netns exec $ns1 $mz br0.20 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1202 + run_cmd "ip netns exec $ns1 $mz br0.20 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1204 1203 tc_check_packets "$ns2" "dev vx0 ingress" 101 1 1205 1204 log_test $? 0 "Destination IP - no match" 1206 1205 ··· 1213 1212 run_cmd "bridge -n $ns1 mdb replace dev vx0 port vx0 grp $grp permanent dst $vtep1_ip dst_port 1111 src_vni 10020" 1214 1213 1215 1214 run_cmd "tc -n $ns2 filter replace dev veth0 ingress pref 1 handle 101 proto $enc_ethtype flower ip_proto udp dst_port 4789 action pass" 1216 - run_cmd "ip netns exec $ns1 $mz br0.10 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1215 + run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1217 1216 tc_check_packets "$ns2" "dev veth0 ingress" 101 1 1218 1217 log_test $? 0 "Default destination port - match" 1219 1218 1220 - run_cmd "ip netns exec $ns1 $mz br0.20 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1219 + run_cmd "ip netns exec $ns1 $mz br0.20 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1221 1220 tc_check_packets "$ns2" "dev veth0 ingress" 101 1 1222 1221 log_test $? 0 "Default destination port - no match" 1223 1222 1224 1223 run_cmd "tc -n $ns2 filter replace dev veth0 ingress pref 1 handle 101 proto $enc_ethtype flower ip_proto udp dst_port 1111 action pass" 1225 - run_cmd "ip netns exec $ns1 $mz br0.20 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1224 + run_cmd "ip netns exec $ns1 $mz br0.20 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1226 1225 tc_check_packets "$ns2" "dev veth0 ingress" 101 1 1227 1226 log_test $? 0 "Non-default destination port - match" 1228 1227 1229 - run_cmd "ip netns exec $ns1 $mz br0.10 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1228 + run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1230 1229 tc_check_packets "$ns2" "dev veth0 ingress" 101 1 1231 1230 log_test $? 0 "Non-default destination port - no match" 1232 1231 ··· 1239 1238 run_cmd "bridge -n $ns1 mdb replace dev vx0 port vx0 grp $grp permanent dst $vtep1_ip src_vni 10020" 1240 1239 1241 1240 run_cmd "tc -n $ns2 filter replace dev vx0 ingress pref 1 handle 101 proto all flower enc_key_id 10010 action pass" 1242 - run_cmd "ip netns exec $ns1 $mz br0.10 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1241 + run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1243 1242 tc_check_packets "$ns2" "dev vx0 ingress" 101 1 1244 1243 log_test $? 0 "Default destination VNI - match" 1245 1244 1246 - run_cmd "ip netns exec $ns1 $mz br0.20 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1245 + run_cmd "ip netns exec $ns1 $mz br0.20 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1247 1246 tc_check_packets "$ns2" "dev vx0 ingress" 101 1 1248 1247 log_test $? 0 "Default destination VNI - no match" 1249 1248 ··· 1251 1250 run_cmd "bridge -n $ns1 mdb replace dev vx0 port vx0 grp $grp permanent dst $vtep1_ip vni 10010 src_vni 10020" 1252 1251 1253 1252 run_cmd "tc -n $ns2 filter replace dev vx0 ingress pref 1 handle 101 proto all flower enc_key_id 10020 action pass" 1254 - run_cmd "ip netns exec $ns1 $mz br0.10 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1253 + run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1255 1254 tc_check_packets "$ns2" "dev vx0 ingress" 101 1 1256 1255 log_test $? 0 "Non-default destination VNI - match" 1257 1256 1258 - run_cmd "ip netns exec $ns1 $mz br0.20 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1257 + run_cmd "ip netns exec $ns1 $mz br0.20 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1259 1258 tc_check_packets "$ns2" "dev vx0 ingress" 101 1 1260 1259 log_test $? 0 "Non-default destination VNI - no match" 1261 1260 ··· 1273 1272 local plen=32 1274 1273 local enc_ethtype="ip" 1275 1274 local grp=239.1.1.1 1275 + local grp_dmac=01:00:5e:01:01:01 1276 1276 local src=192.0.2.129 1277 1277 1278 1278 echo ··· 1281 1279 echo "------------------------------------------------------------------" 1282 1280 1283 1281 encap_params_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $enc_ethtype \ 1284 - $grp $src "mausezahn" 1282 + $grp $grp_dmac $src "mausezahn" 1285 1283 } 1286 1284 1287 1285 encap_params_ipv6_ipv4() ··· 1293 1291 local plen=32 1294 1292 local enc_ethtype="ip" 1295 1293 local grp=ff0e::1 1294 + local grp_dmac=33:33:00:00:00:01 1296 1295 local src=2001:db8:100::1 1297 1296 1298 1297 echo ··· 1301 1298 echo "------------------------------------------------------------------" 1302 1299 1303 1300 encap_params_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $enc_ethtype \ 1304 - $grp $src "mausezahn -6" 1301 + $grp $grp_dmac $src "mausezahn -6" 1305 1302 } 1306 1303 1307 1304 encap_params_ipv4_ipv6() ··· 1313 1310 local plen=128 1314 1311 local enc_ethtype="ipv6" 1315 1312 local grp=239.1.1.1 1313 + local grp_dmac=01:00:5e:01:01:01 1316 1314 local src=192.0.2.129 1317 1315 1318 1316 echo ··· 1321 1317 echo "------------------------------------------------------------------" 1322 1318 1323 1319 encap_params_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $enc_ethtype \ 1324 - $grp $src "mausezahn" 1320 + $grp $grp_dmac $src "mausezahn" 1325 1321 } 1326 1322 1327 1323 encap_params_ipv6_ipv6() ··· 1333 1329 local plen=128 1334 1330 local enc_ethtype="ipv6" 1335 1331 local grp=ff0e::1 1332 + local grp_dmac=33:33:00:00:00:01 1336 1333 local src=2001:db8:100::1 1337 1334 1338 1335 echo ··· 1341 1336 echo "------------------------------------------------------------------" 1342 1337 1343 1338 encap_params_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $enc_ethtype \ 1344 - $grp $src "mausezahn -6" 1339 + $grp $grp_dmac $src "mausezahn -6" 1345 1340 } 1346 1341 1347 1342 starg_exclude_ir_common() ··· 1352 1347 local vtep2_ip=$1; shift 1353 1348 local plen=$1; shift 1354 1349 local grp=$1; shift 1350 + local grp_dmac=$1; shift 1355 1351 local valid_src=$1; shift 1356 1352 local invalid_src=$1; shift 1357 1353 local mz=$1; shift ··· 1374 1368 run_cmd "bridge -n $ns1 mdb replace dev vx0 port vx0 grp $grp permanent filter_mode exclude source_list $invalid_src dst $vtep2_ip src_vni 10010" 1375 1369 1376 1370 # Check that invalid source is not forwarded to any VTEP. 1377 - run_cmd "ip netns exec $ns1 $mz br0.10 -A $invalid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1371 + run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $invalid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1378 1372 tc_check_packets "$ns2" "dev vx0 ingress" 101 0 1379 1373 log_test $? 0 "Block excluded source - first VTEP" 1380 1374 tc_check_packets "$ns2" "dev vx0 ingress" 102 0 1381 1375 log_test $? 0 "Block excluded source - second VTEP" 1382 1376 1383 1377 # Check that valid source is forwarded to both VTEPs. 1384 - run_cmd "ip netns exec $ns1 $mz br0.10 -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1378 + run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1385 1379 tc_check_packets "$ns2" "dev vx0 ingress" 101 1 1386 1380 log_test $? 0 "Forward valid source - first VTEP" 1387 1381 tc_check_packets "$ns2" "dev vx0 ingress" 102 1 ··· 1391 1385 run_cmd "bridge -n $ns1 mdb del dev vx0 port vx0 grp $grp dst $vtep2_ip src_vni 10010" 1392 1386 1393 1387 # Check that invalid source is not forwarded to any VTEP. 1394 - run_cmd "ip netns exec $ns1 $mz br0.10 -A $invalid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1388 + run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $invalid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1395 1389 tc_check_packets "$ns2" "dev vx0 ingress" 101 1 1396 1390 log_test $? 0 "Block excluded source after removal - first VTEP" 1397 1391 tc_check_packets "$ns2" "dev vx0 ingress" 102 1 1398 1392 log_test $? 0 "Block excluded source after removal - second VTEP" 1399 1393 1400 1394 # Check that valid source is forwarded to the remaining VTEP. 1401 - run_cmd "ip netns exec $ns1 $mz br0.10 -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1395 + run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1402 1396 tc_check_packets "$ns2" "dev vx0 ingress" 101 2 1403 1397 log_test $? 0 "Forward valid source after removal - first VTEP" 1404 1398 tc_check_packets "$ns2" "dev vx0 ingress" 102 1 ··· 1413 1407 local vtep2_ip=198.51.100.200 1414 1408 local plen=32 1415 1409 local grp=239.1.1.1 1410 + local grp_dmac=01:00:5e:01:01:01 1416 1411 local valid_src=192.0.2.129 1417 1412 local invalid_src=192.0.2.145 1418 1413 ··· 1422 1415 echo "-------------------------------------------------------------" 1423 1416 1424 1417 starg_exclude_ir_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $grp \ 1425 - $valid_src $invalid_src "mausezahn" 1418 + $grp_dmac $valid_src $invalid_src "mausezahn" 1426 1419 } 1427 1420 1428 1421 starg_exclude_ir_ipv6_ipv4() ··· 1433 1426 local vtep2_ip=198.51.100.200 1434 1427 local plen=32 1435 1428 local grp=ff0e::1 1429 + local grp_dmac=33:33:00:00:00:01 1436 1430 local valid_src=2001:db8:100::1 1437 1431 local invalid_src=2001:db8:200::1 1438 1432 ··· 1442 1434 echo "-------------------------------------------------------------" 1443 1435 1444 1436 starg_exclude_ir_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $grp \ 1445 - $valid_src $invalid_src "mausezahn -6" 1437 + $grp_dmac $valid_src $invalid_src "mausezahn -6" 1446 1438 } 1447 1439 1448 1440 starg_exclude_ir_ipv4_ipv6() ··· 1453 1445 local vtep2_ip=2001:db8:2000::1 1454 1446 local plen=128 1455 1447 local grp=239.1.1.1 1448 + local grp_dmac=01:00:5e:01:01:01 1456 1449 local valid_src=192.0.2.129 1457 1450 local invalid_src=192.0.2.145 1458 1451 ··· 1462 1453 echo "-------------------------------------------------------------" 1463 1454 1464 1455 starg_exclude_ir_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $grp \ 1465 - $valid_src $invalid_src "mausezahn" 1456 + $grp_dmac $valid_src $invalid_src "mausezahn" 1466 1457 } 1467 1458 1468 1459 starg_exclude_ir_ipv6_ipv6() ··· 1473 1464 local vtep2_ip=2001:db8:2000::1 1474 1465 local plen=128 1475 1466 local grp=ff0e::1 1467 + local grp_dmac=33:33:00:00:00:01 1476 1468 local valid_src=2001:db8:100::1 1477 1469 local invalid_src=2001:db8:200::1 1478 1470 ··· 1482 1472 echo "-------------------------------------------------------------" 1483 1473 1484 1474 starg_exclude_ir_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $grp \ 1485 - $valid_src $invalid_src "mausezahn -6" 1475 + $grp_dmac $valid_src $invalid_src "mausezahn -6" 1486 1476 } 1487 1477 1488 1478 starg_include_ir_common() ··· 1493 1483 local vtep2_ip=$1; shift 1494 1484 local plen=$1; shift 1495 1485 local grp=$1; shift 1486 + local grp_dmac=$1; shift 1496 1487 local valid_src=$1; shift 1497 1488 local invalid_src=$1; shift 1498 1489 local mz=$1; shift ··· 1515 1504 run_cmd "bridge -n $ns1 mdb replace dev vx0 port vx0 grp $grp permanent filter_mode include source_list $valid_src dst $vtep2_ip src_vni 10010" 1516 1505 1517 1506 # Check that invalid source is not forwarded to any VTEP. 1518 - run_cmd "ip netns exec $ns1 $mz br0.10 -A $invalid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1507 + run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $invalid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1519 1508 tc_check_packets "$ns2" "dev vx0 ingress" 101 0 1520 1509 log_test $? 0 "Block excluded source - first VTEP" 1521 1510 tc_check_packets "$ns2" "dev vx0 ingress" 102 0 1522 1511 log_test $? 0 "Block excluded source - second VTEP" 1523 1512 1524 1513 # Check that valid source is forwarded to both VTEPs. 1525 - run_cmd "ip netns exec $ns1 $mz br0.10 -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1514 + run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1526 1515 tc_check_packets "$ns2" "dev vx0 ingress" 101 1 1527 1516 log_test $? 0 "Forward valid source - first VTEP" 1528 1517 tc_check_packets "$ns2" "dev vx0 ingress" 102 1 ··· 1532 1521 run_cmd "bridge -n $ns1 mdb del dev vx0 port vx0 grp $grp dst $vtep2_ip src_vni 10010" 1533 1522 1534 1523 # Check that invalid source is not forwarded to any VTEP. 1535 - run_cmd "ip netns exec $ns1 $mz br0.10 -A $invalid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1524 + run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $invalid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1536 1525 tc_check_packets "$ns2" "dev vx0 ingress" 101 1 1537 1526 log_test $? 0 "Block excluded source after removal - first VTEP" 1538 1527 tc_check_packets "$ns2" "dev vx0 ingress" 102 1 1539 1528 log_test $? 0 "Block excluded source after removal - second VTEP" 1540 1529 1541 1530 # Check that valid source is forwarded to the remaining VTEP. 1542 - run_cmd "ip netns exec $ns1 $mz br0.10 -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1531 + run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1543 1532 tc_check_packets "$ns2" "dev vx0 ingress" 101 2 1544 1533 log_test $? 0 "Forward valid source after removal - first VTEP" 1545 1534 tc_check_packets "$ns2" "dev vx0 ingress" 102 1 ··· 1554 1543 local vtep2_ip=198.51.100.200 1555 1544 local plen=32 1556 1545 local grp=239.1.1.1 1546 + local grp_dmac=01:00:5e:01:01:01 1557 1547 local valid_src=192.0.2.129 1558 1548 local invalid_src=192.0.2.145 1559 1549 ··· 1563 1551 echo "-------------------------------------------------------------" 1564 1552 1565 1553 starg_include_ir_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $grp \ 1566 - $valid_src $invalid_src "mausezahn" 1554 + $grp_dmac $valid_src $invalid_src "mausezahn" 1567 1555 } 1568 1556 1569 1557 starg_include_ir_ipv6_ipv4() ··· 1574 1562 local vtep2_ip=198.51.100.200 1575 1563 local plen=32 1576 1564 local grp=ff0e::1 1565 + local grp_dmac=33:33:00:00:00:01 1577 1566 local valid_src=2001:db8:100::1 1578 1567 local invalid_src=2001:db8:200::1 1579 1568 ··· 1583 1570 echo "-------------------------------------------------------------" 1584 1571 1585 1572 starg_include_ir_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $grp \ 1586 - $valid_src $invalid_src "mausezahn -6" 1573 + $grp_dmac $valid_src $invalid_src "mausezahn -6" 1587 1574 } 1588 1575 1589 1576 starg_include_ir_ipv4_ipv6() ··· 1594 1581 local vtep2_ip=2001:db8:2000::1 1595 1582 local plen=128 1596 1583 local grp=239.1.1.1 1584 + local grp_dmac=01:00:5e:01:01:01 1597 1585 local valid_src=192.0.2.129 1598 1586 local invalid_src=192.0.2.145 1599 1587 ··· 1603 1589 echo "-------------------------------------------------------------" 1604 1590 1605 1591 starg_include_ir_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $grp \ 1606 - $valid_src $invalid_src "mausezahn" 1592 + $grp_dmac $valid_src $invalid_src "mausezahn" 1607 1593 } 1608 1594 1609 1595 starg_include_ir_ipv6_ipv6() ··· 1614 1600 local vtep2_ip=2001:db8:2000::1 1615 1601 local plen=128 1616 1602 local grp=ff0e::1 1603 + local grp_dmac=33:33:00:00:00:01 1617 1604 local valid_src=2001:db8:100::1 1618 1605 local invalid_src=2001:db8:200::1 1619 1606 ··· 1623 1608 echo "-------------------------------------------------------------" 1624 1609 1625 1610 starg_include_ir_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $grp \ 1626 - $valid_src $invalid_src "mausezahn -6" 1611 + $grp_dmac $valid_src $invalid_src "mausezahn -6" 1627 1612 } 1628 1613 1629 1614 starg_exclude_p2mp_common() ··· 1633 1618 local mcast_grp=$1; shift 1634 1619 local plen=$1; shift 1635 1620 local grp=$1; shift 1621 + local grp_dmac=$1; shift 1636 1622 local valid_src=$1; shift 1637 1623 local invalid_src=$1; shift 1638 1624 local mz=$1; shift ··· 1651 1635 run_cmd "bridge -n $ns1 mdb replace dev vx0 port vx0 grp $grp permanent filter_mode exclude source_list $invalid_src dst $mcast_grp src_vni 10010 via veth0" 1652 1636 1653 1637 # Check that invalid source is not forwarded. 1654 - run_cmd "ip netns exec $ns1 $mz br0.10 -A $invalid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1638 + run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $invalid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1655 1639 tc_check_packets "$ns2" "dev vx0 ingress" 101 0 1656 1640 log_test $? 0 "Block excluded source" 1657 1641 1658 1642 # Check that valid source is forwarded. 1659 - run_cmd "ip netns exec $ns1 $mz br0.10 -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1643 + run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1660 1644 tc_check_packets "$ns2" "dev vx0 ingress" 101 1 1661 1645 log_test $? 0 "Forward valid source" 1662 1646 ··· 1664 1648 run_cmd "ip -n $ns2 address del $mcast_grp/$plen dev veth0" 1665 1649 1666 1650 # Check that valid source is not received anymore. 1667 - run_cmd "ip netns exec $ns1 $mz br0.10 -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1651 + run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1668 1652 tc_check_packets "$ns2" "dev vx0 ingress" 101 1 1669 1653 log_test $? 0 "Receive of valid source after removal from group" 1670 1654 } ··· 1676 1660 local mcast_grp=238.1.1.1 1677 1661 local plen=32 1678 1662 local grp=239.1.1.1 1663 + local grp_dmac=01:00:5e:01:01:01 1679 1664 local valid_src=192.0.2.129 1680 1665 local invalid_src=192.0.2.145 1681 1666 ··· 1684 1667 echo "Data path: (*, G) EXCLUDE - P2MP - IPv4 overlay / IPv4 underlay" 1685 1668 echo "---------------------------------------------------------------" 1686 1669 1687 - starg_exclude_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp \ 1670 + starg_exclude_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp $grp_dmac \ 1688 1671 $valid_src $invalid_src "mausezahn" 1689 1672 } 1690 1673 ··· 1695 1678 local mcast_grp=238.1.1.1 1696 1679 local plen=32 1697 1680 local grp=ff0e::1 1681 + local grp_dmac=33:33:00:00:00:01 1698 1682 local valid_src=2001:db8:100::1 1699 1683 local invalid_src=2001:db8:200::1 1700 1684 ··· 1703 1685 echo "Data path: (*, G) EXCLUDE - P2MP - IPv6 overlay / IPv4 underlay" 1704 1686 echo "---------------------------------------------------------------" 1705 1687 1706 - starg_exclude_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp \ 1688 + starg_exclude_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp $grp_dmac \ 1707 1689 $valid_src $invalid_src "mausezahn -6" 1708 1690 } 1709 1691 ··· 1714 1696 local mcast_grp=ff0e::2 1715 1697 local plen=128 1716 1698 local grp=239.1.1.1 1699 + local grp_dmac=01:00:5e:01:01:01 1717 1700 local valid_src=192.0.2.129 1718 1701 local invalid_src=192.0.2.145 1719 1702 ··· 1722 1703 echo "Data path: (*, G) EXCLUDE - P2MP - IPv4 overlay / IPv6 underlay" 1723 1704 echo "---------------------------------------------------------------" 1724 1705 1725 - starg_exclude_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp \ 1706 + starg_exclude_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp $grp_dmac \ 1726 1707 $valid_src $invalid_src "mausezahn" 1727 1708 } 1728 1709 ··· 1733 1714 local mcast_grp=ff0e::2 1734 1715 local plen=128 1735 1716 local grp=ff0e::1 1717 + local grp_dmac=33:33:00:00:00:01 1736 1718 local valid_src=2001:db8:100::1 1737 1719 local invalid_src=2001:db8:200::1 1738 1720 ··· 1741 1721 echo "Data path: (*, G) EXCLUDE - P2MP - IPv6 overlay / IPv6 underlay" 1742 1722 echo "---------------------------------------------------------------" 1743 1723 1744 - starg_exclude_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp \ 1724 + starg_exclude_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp $grp_dmac \ 1745 1725 $valid_src $invalid_src "mausezahn -6" 1746 1726 } 1747 1727 ··· 1752 1732 local mcast_grp=$1; shift 1753 1733 local plen=$1; shift 1754 1734 local grp=$1; shift 1735 + local grp_dmac=$1; shift 1755 1736 local valid_src=$1; shift 1756 1737 local invalid_src=$1; shift 1757 1738 local mz=$1; shift ··· 1770 1749 run_cmd "bridge -n $ns1 mdb replace dev vx0 port vx0 grp $grp permanent filter_mode include source_list $valid_src dst $mcast_grp src_vni 10010 via veth0" 1771 1750 1772 1751 # Check that invalid source is not forwarded. 1773 - run_cmd "ip netns exec $ns1 $mz br0.10 -A $invalid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1752 + run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $invalid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1774 1753 tc_check_packets "$ns2" "dev vx0 ingress" 101 0 1775 1754 log_test $? 0 "Block excluded source" 1776 1755 1777 1756 # Check that valid source is forwarded. 1778 - run_cmd "ip netns exec $ns1 $mz br0.10 -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1757 + run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1779 1758 tc_check_packets "$ns2" "dev vx0 ingress" 101 1 1780 1759 log_test $? 0 "Forward valid source" 1781 1760 ··· 1783 1762 run_cmd "ip -n $ns2 address del $mcast_grp/$plen dev veth0" 1784 1763 1785 1764 # Check that valid source is not received anymore. 1786 - run_cmd "ip netns exec $ns1 $mz br0.10 -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1765 + run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $valid_src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1787 1766 tc_check_packets "$ns2" "dev vx0 ingress" 101 1 1788 1767 log_test $? 0 "Receive of valid source after removal from group" 1789 1768 } ··· 1795 1774 local mcast_grp=238.1.1.1 1796 1775 local plen=32 1797 1776 local grp=239.1.1.1 1777 + local grp_dmac=01:00:5e:01:01:01 1798 1778 local valid_src=192.0.2.129 1799 1779 local invalid_src=192.0.2.145 1800 1780 ··· 1803 1781 echo "Data path: (*, G) INCLUDE - P2MP - IPv4 overlay / IPv4 underlay" 1804 1782 echo "---------------------------------------------------------------" 1805 1783 1806 - starg_include_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp \ 1784 + starg_include_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp $grp_dmac \ 1807 1785 $valid_src $invalid_src "mausezahn" 1808 1786 } 1809 1787 ··· 1814 1792 local mcast_grp=238.1.1.1 1815 1793 local plen=32 1816 1794 local grp=ff0e::1 1795 + local grp_dmac=33:33:00:00:00:01 1817 1796 local valid_src=2001:db8:100::1 1818 1797 local invalid_src=2001:db8:200::1 1819 1798 ··· 1822 1799 echo "Data path: (*, G) INCLUDE - P2MP - IPv6 overlay / IPv4 underlay" 1823 1800 echo "---------------------------------------------------------------" 1824 1801 1825 - starg_include_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp \ 1802 + starg_include_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp $grp_dmac \ 1826 1803 $valid_src $invalid_src "mausezahn -6" 1827 1804 } 1828 1805 ··· 1833 1810 local mcast_grp=ff0e::2 1834 1811 local plen=128 1835 1812 local grp=239.1.1.1 1813 + local grp_dmac=01:00:5e:01:01:01 1836 1814 local valid_src=192.0.2.129 1837 1815 local invalid_src=192.0.2.145 1838 1816 ··· 1841 1817 echo "Data path: (*, G) INCLUDE - P2MP - IPv4 overlay / IPv6 underlay" 1842 1818 echo "---------------------------------------------------------------" 1843 1819 1844 - starg_include_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp \ 1820 + starg_include_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp $grp_dmac \ 1845 1821 $valid_src $invalid_src "mausezahn" 1846 1822 } 1847 1823 ··· 1852 1828 local mcast_grp=ff0e::2 1853 1829 local plen=128 1854 1830 local grp=ff0e::1 1831 + local grp_dmac=33:33:00:00:00:01 1855 1832 local valid_src=2001:db8:100::1 1856 1833 local invalid_src=2001:db8:200::1 1857 1834 ··· 1860 1835 echo "Data path: (*, G) INCLUDE - P2MP - IPv6 overlay / IPv6 underlay" 1861 1836 echo "---------------------------------------------------------------" 1862 1837 1863 - starg_include_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp \ 1838 + starg_include_p2mp_common $ns1 $ns2 $mcast_grp $plen $grp $grp_dmac \ 1864 1839 $valid_src $invalid_src "mausezahn -6" 1865 1840 } 1866 1841 ··· 1872 1847 local plen=$1; shift 1873 1848 local proto=$1; shift 1874 1849 local grp=$1; shift 1850 + local grp_dmac=$1; shift 1875 1851 local src=$1; shift 1876 1852 local mz=$1; shift 1877 1853 ··· 1908 1882 # Make sure that packets sent from the first VTEP over VLAN 10 are 1909 1883 # received by the SVI corresponding to the L3VNI (14000 / VLAN 4000) on 1910 1884 # the second VTEP, since it is configured as PVID. 1911 - run_cmd "ip netns exec $ns1 $mz br0.10 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1885 + run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1912 1886 tc_check_packets "$ns2" "dev br0.4000 ingress" 101 1 1913 1887 log_test $? 0 "Egress VNI translation - PVID configured" 1914 1888 1915 1889 # Remove PVID flag from VLAN 4000 on the second VTEP and make sure 1916 1890 # packets are no longer received by the SVI interface. 1917 1891 run_cmd "bridge -n $ns2 vlan add vid 4000 dev vx0" 1918 - run_cmd "ip netns exec $ns1 $mz br0.10 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1892 + run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1919 1893 tc_check_packets "$ns2" "dev br0.4000 ingress" 101 1 1920 1894 log_test $? 0 "Egress VNI translation - no PVID configured" 1921 1895 1922 1896 # Reconfigure the PVID and make sure packets are received again. 1923 1897 run_cmd "bridge -n $ns2 vlan add vid 4000 dev vx0 pvid" 1924 - run_cmd "ip netns exec $ns1 $mz br0.10 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1898 + run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 1925 1899 tc_check_packets "$ns2" "dev br0.4000 ingress" 101 2 1926 1900 log_test $? 0 "Egress VNI translation - PVID reconfigured" 1927 1901 } ··· 1934 1908 local plen=32 1935 1909 local proto="ipv4" 1936 1910 local grp=239.1.1.1 1911 + local grp_dmac=01:00:5e:01:01:01 1937 1912 local src=192.0.2.129 1938 1913 1939 1914 echo ··· 1942 1915 echo "----------------------------------------------------------------" 1943 1916 1944 1917 egress_vni_translation_common $ns1 $ns2 $mcast_grp $plen $proto $grp \ 1945 - $src "mausezahn" 1918 + $grp_dmac $src "mausezahn" 1946 1919 } 1947 1920 1948 1921 egress_vni_translation_ipv6_ipv4() ··· 1953 1926 local plen=32 1954 1927 local proto="ipv6" 1955 1928 local grp=ff0e::1 1929 + local grp_dmac=33:33:00:00:00:01 1956 1930 local src=2001:db8:100::1 1957 1931 1958 1932 echo ··· 1961 1933 echo "----------------------------------------------------------------" 1962 1934 1963 1935 egress_vni_translation_common $ns1 $ns2 $mcast_grp $plen $proto $grp \ 1964 - $src "mausezahn -6" 1936 + $grp_dmac $src "mausezahn -6" 1965 1937 } 1966 1938 1967 1939 egress_vni_translation_ipv4_ipv6() ··· 1972 1944 local plen=128 1973 1945 local proto="ipv4" 1974 1946 local grp=239.1.1.1 1947 + local grp_dmac=01:00:5e:01:01:01 1975 1948 local src=192.0.2.129 1976 1949 1977 1950 echo ··· 1980 1951 echo "----------------------------------------------------------------" 1981 1952 1982 1953 egress_vni_translation_common $ns1 $ns2 $mcast_grp $plen $proto $grp \ 1983 - $src "mausezahn" 1954 + $grp_dmac $src "mausezahn" 1984 1955 } 1985 1956 1986 1957 egress_vni_translation_ipv6_ipv6() ··· 1991 1962 local plen=128 1992 1963 local proto="ipv6" 1993 1964 local grp=ff0e::1 1965 + local grp_dmac=33:33:00:00:00:01 1994 1966 local src=2001:db8:100::1 1995 1967 1996 1968 echo ··· 1999 1969 echo "----------------------------------------------------------------" 2000 1970 2001 1971 egress_vni_translation_common $ns1 $ns2 $mcast_grp $plen $proto $grp \ 2002 - $src "mausezahn -6" 1972 + $grp_dmac $src "mausezahn -6" 2003 1973 } 2004 1974 2005 1975 all_zeros_mdb_common() ··· 2012 1982 local vtep4_ip=$1; shift 2013 1983 local plen=$1; shift 2014 1984 local ipv4_grp=239.1.1.1 1985 + local ipv4_grp_dmac=01:00:5e:01:01:01 2015 1986 local ipv4_unreg_grp=239.2.2.2 1987 + local ipv4_unreg_grp_dmac=01:00:5e:02:02:02 2016 1988 local ipv4_ll_grp=224.0.0.100 1989 + local ipv4_ll_grp_dmac=01:00:5e:00:00:64 2017 1990 local ipv4_src=192.0.2.129 2018 1991 local ipv6_grp=ff0e::1 1992 + local ipv6_grp_dmac=33:33:00:00:00:01 2019 1993 local ipv6_unreg_grp=ff0e::2 1994 + local ipv6_unreg_grp_dmac=33:33:00:00:00:02 2020 1995 local ipv6_ll_grp=ff02::1 1996 + local ipv6_ll_grp_dmac=33:33:00:00:00:01 2021 1997 local ipv6_src=2001:db8:100::1 2022 1998 2023 1999 # Install all-zeros (catchall) MDB entries for IPv4 and IPv6 traffic ··· 2059 2023 2060 2024 # Send registered IPv4 multicast and make sure it only arrives to the 2061 2025 # first VTEP. 2062 - run_cmd "ip netns exec $ns1 mausezahn br0.10 -A $ipv4_src -B $ipv4_grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 2026 + run_cmd "ip netns exec $ns1 mausezahn br0.10 -a own -b $ipv4_grp_dmac -A $ipv4_src -B $ipv4_grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 2063 2027 tc_check_packets "$ns2" "dev vx0 ingress" 101 1 2064 2028 log_test $? 0 "Registered IPv4 multicast - first VTEP" 2065 2029 tc_check_packets "$ns2" "dev vx0 ingress" 102 0 ··· 2067 2031 2068 2032 # Send unregistered IPv4 multicast that is not link-local and make sure 2069 2033 # it arrives to the first and second VTEPs. 2070 - run_cmd "ip netns exec $ns1 mausezahn br0.10 -A $ipv4_src -B $ipv4_unreg_grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 2034 + run_cmd "ip netns exec $ns1 mausezahn br0.10 -a own -b $ipv4_unreg_grp_dmac -A $ipv4_src -B $ipv4_unreg_grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 2071 2035 tc_check_packets "$ns2" "dev vx0 ingress" 101 2 2072 2036 log_test $? 0 "Unregistered IPv4 multicast - first VTEP" 2073 2037 tc_check_packets "$ns2" "dev vx0 ingress" 102 1 ··· 2075 2039 2076 2040 # Send IPv4 link-local multicast traffic and make sure it does not 2077 2041 # arrive to any VTEP. 2078 - run_cmd "ip netns exec $ns1 mausezahn br0.10 -A $ipv4_src -B $ipv4_ll_grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 2042 + run_cmd "ip netns exec $ns1 mausezahn br0.10 -a own -b $ipv4_ll_grp_dmac -A $ipv4_src -B $ipv4_ll_grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 2079 2043 tc_check_packets "$ns2" "dev vx0 ingress" 101 2 2080 2044 log_test $? 0 "Link-local IPv4 multicast - first VTEP" 2081 2045 tc_check_packets "$ns2" "dev vx0 ingress" 102 1 ··· 2110 2074 2111 2075 # Send registered IPv6 multicast and make sure it only arrives to the 2112 2076 # third VTEP. 2113 - run_cmd "ip netns exec $ns1 mausezahn -6 br0.10 -A $ipv6_src -B $ipv6_grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 2077 + run_cmd "ip netns exec $ns1 mausezahn -6 br0.10 -a own -b $ipv6_grp_dmac -A $ipv6_src -B $ipv6_grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 2114 2078 tc_check_packets "$ns2" "dev vx0 ingress" 103 1 2115 2079 log_test $? 0 "Registered IPv6 multicast - third VTEP" 2116 2080 tc_check_packets "$ns2" "dev vx0 ingress" 104 0 ··· 2118 2082 2119 2083 # Send unregistered IPv6 multicast that is not link-local and make sure 2120 2084 # it arrives to the third and fourth VTEPs. 2121 - run_cmd "ip netns exec $ns1 mausezahn -6 br0.10 -A $ipv6_src -B $ipv6_unreg_grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 2085 + run_cmd "ip netns exec $ns1 mausezahn -6 br0.10 -a own -b $ipv6_unreg_grp_dmac -A $ipv6_src -B $ipv6_unreg_grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 2122 2086 tc_check_packets "$ns2" "dev vx0 ingress" 103 2 2123 2087 log_test $? 0 "Unregistered IPv6 multicast - third VTEP" 2124 2088 tc_check_packets "$ns2" "dev vx0 ingress" 104 1 ··· 2126 2090 2127 2091 # Send IPv6 link-local multicast traffic and make sure it does not 2128 2092 # arrive to any VTEP. 2129 - run_cmd "ip netns exec $ns1 mausezahn -6 br0.10 -A $ipv6_src -B $ipv6_ll_grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 2093 + run_cmd "ip netns exec $ns1 mausezahn -6 br0.10 -a own -b $ipv6_ll_grp_dmac -A $ipv6_src -B $ipv6_ll_grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 2130 2094 tc_check_packets "$ns2" "dev vx0 ingress" 103 2 2131 2095 log_test $? 0 "Link-local IPv6 multicast - third VTEP" 2132 2096 tc_check_packets "$ns2" "dev vx0 ingress" 104 1 ··· 2201 2165 local plen=$1; shift 2202 2166 local proto=$1; shift 2203 2167 local grp=$1; shift 2168 + local grp_dmac=$1; shift 2204 2169 local src=$1; shift 2205 2170 local mz=$1; shift 2206 2171 ··· 2225 2188 2226 2189 # Send IP multicast traffic and make sure it is forwarded by the MDB 2227 2190 # and only arrives to the first VTEP. 2228 - run_cmd "ip netns exec $ns1 $mz br0.10 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 2191 + run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 2229 2192 tc_check_packets "$ns2" "dev vx0 ingress" 101 1 2230 2193 log_test $? 0 "IP multicast - first VTEP" 2231 2194 tc_check_packets "$ns2" "dev vx0 ingress" 102 0 ··· 2242 2205 # Remove the MDB entry and make sure that IP multicast is now forwarded 2243 2206 # by the FDB to the second VTEP. 2244 2207 run_cmd "bridge -n $ns1 mdb del dev vx0 port vx0 grp $grp dst $vtep1_ip src_vni 10010" 2245 - run_cmd "ip netns exec $ns1 $mz br0.10 -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 2208 + run_cmd "ip netns exec $ns1 $mz br0.10 -a own -b $grp_dmac -A $src -B $grp -t udp sp=12345,dp=54321 -p 100 -c 1 -q" 2246 2209 tc_check_packets "$ns2" "dev vx0 ingress" 101 1 2247 2210 log_test $? 0 "IP multicast after removal - first VTEP" 2248 2211 tc_check_packets "$ns2" "dev vx0 ingress" 102 2 ··· 2258 2221 local plen=32 2259 2222 local proto="ipv4" 2260 2223 local grp=239.1.1.1 2224 + local grp_dmac=01:00:5e:01:01:01 2261 2225 local src=192.0.2.129 2262 2226 2263 2227 echo 2264 2228 echo "Data path: MDB with FDB - IPv4 overlay / IPv4 underlay" 2265 2229 echo "------------------------------------------------------" 2266 2230 2267 - mdb_fdb_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $proto $grp $src \ 2268 - "mausezahn" 2231 + mdb_fdb_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $proto $grp \ 2232 + $grp_dmac $src "mausezahn" 2269 2233 } 2270 2234 2271 2235 mdb_fdb_ipv6_ipv4() ··· 2278 2240 local plen=32 2279 2241 local proto="ipv6" 2280 2242 local grp=ff0e::1 2243 + local grp_dmac=33:33:00:00:00:01 2281 2244 local src=2001:db8:100::1 2282 2245 2283 2246 echo 2284 2247 echo "Data path: MDB with FDB - IPv6 overlay / IPv4 underlay" 2285 2248 echo "------------------------------------------------------" 2286 2249 2287 - mdb_fdb_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $proto $grp $src \ 2288 - "mausezahn -6" 2250 + mdb_fdb_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $proto $grp \ 2251 + $grp_dmac $src "mausezahn -6" 2289 2252 } 2290 2253 2291 2254 mdb_fdb_ipv4_ipv6() ··· 2298 2259 local plen=128 2299 2260 local proto="ipv4" 2300 2261 local grp=239.1.1.1 2262 + local grp_dmac=01:00:5e:01:01:01 2301 2263 local src=192.0.2.129 2302 2264 2303 2265 echo 2304 2266 echo "Data path: MDB with FDB - IPv4 overlay / IPv6 underlay" 2305 2267 echo "------------------------------------------------------" 2306 2268 2307 - mdb_fdb_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $proto $grp $src \ 2308 - "mausezahn" 2269 + mdb_fdb_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $proto $grp \ 2270 + $grp_dmac $src "mausezahn" 2309 2271 } 2310 2272 2311 2273 mdb_fdb_ipv6_ipv6() ··· 2318 2278 local plen=128 2319 2279 local proto="ipv6" 2320 2280 local grp=ff0e::1 2281 + local grp_dmac=33:33:00:00:00:01 2321 2282 local src=2001:db8:100::1 2322 2283 2323 2284 echo 2324 2285 echo "Data path: MDB with FDB - IPv6 overlay / IPv6 underlay" 2325 2286 echo "------------------------------------------------------" 2326 2287 2327 - mdb_fdb_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $proto $grp $src \ 2328 - "mausezahn -6" 2288 + mdb_fdb_common $ns1 $ns2 $vtep1_ip $vtep2_ip $plen $proto $grp \ 2289 + $grp_dmac $src "mausezahn -6" 2329 2290 } 2330 2291 2331 2292 mdb_grp1_loop() ··· 2361 2320 local vtep1_ip=$1; shift 2362 2321 local vtep2_ip=$1; shift 2363 2322 local grp1=$1; shift 2323 + local grp1_dmac=$1; shift 2364 2324 local grp2=$1; shift 2325 + local grp2_dmac=$1; shift 2365 2326 local src=$1; shift 2366 2327 local mz=$1; shift 2367 2328 local pid1 ··· 2388 2345 pid1=$! 2389 2346 mdb_grp2_loop $ns1 $vtep1_ip $vtep2_ip $grp2 & 2390 2347 pid2=$! 2391 - ip netns exec $ns1 $mz br0.10 -A $src -B $grp1 -t udp sp=12345,dp=54321 -p 100 -c 0 -q & 2348 + ip netns exec $ns1 $mz br0.10 -a own -b $grp1_dmac -A $src -B $grp1 -t udp sp=12345,dp=54321 -p 100 -c 0 -q & 2392 2349 pid3=$! 2393 - ip netns exec $ns1 $mz br0.10 -A $src -B $grp2 -t udp sp=12345,dp=54321 -p 100 -c 0 -q & 2350 + ip netns exec $ns1 $mz br0.10 -a own -b $grp2_dmac -A $src -B $grp2 -t udp sp=12345,dp=54321 -p 100 -c 0 -q & 2394 2351 pid4=$! 2395 2352 2396 2353 sleep 30 ··· 2406 2363 local vtep1_ip=198.51.100.100 2407 2364 local vtep2_ip=198.51.100.200 2408 2365 local grp1=239.1.1.1 2366 + local grp1_dmac=01:00:5e:01:01:01 2409 2367 local grp2=239.2.2.2 2368 + local grp2_dmac=01:00:5e:02:02:02 2410 2369 local src=192.0.2.129 2411 2370 2412 2371 echo 2413 2372 echo "Data path: MDB torture test - IPv4 overlay / IPv4 underlay" 2414 2373 echo "----------------------------------------------------------" 2415 2374 2416 - mdb_torture_common $ns1 $vtep1_ip $vtep2_ip $grp1 $grp2 $src \ 2417 - "mausezahn" 2375 + mdb_torture_common $ns1 $vtep1_ip $vtep2_ip $grp1 $grp1_dmac $grp2 \ 2376 + $grp2_dmac $src "mausezahn" 2418 2377 } 2419 2378 2420 2379 mdb_torture_ipv6_ipv4() ··· 2425 2380 local vtep1_ip=198.51.100.100 2426 2381 local vtep2_ip=198.51.100.200 2427 2382 local grp1=ff0e::1 2383 + local grp1_dmac=33:33:00:00:00:01 2428 2384 local grp2=ff0e::2 2385 + local grp2_dmac=33:33:00:00:00:02 2429 2386 local src=2001:db8:100::1 2430 2387 2431 2388 echo 2432 2389 echo "Data path: MDB torture test - IPv6 overlay / IPv4 underlay" 2433 2390 echo "----------------------------------------------------------" 2434 2391 2435 - mdb_torture_common $ns1 $vtep1_ip $vtep2_ip $grp1 $grp2 $src \ 2436 - "mausezahn -6" 2392 + mdb_torture_common $ns1 $vtep1_ip $vtep2_ip $grp1 $grp1_dmac $grp2 \ 2393 + $grp2_dmac $src "mausezahn -6" 2437 2394 } 2438 2395 2439 2396 mdb_torture_ipv4_ipv6() ··· 2444 2397 local vtep1_ip=2001:db8:1000::1 2445 2398 local vtep2_ip=2001:db8:2000::1 2446 2399 local grp1=239.1.1.1 2400 + local grp1_dmac=01:00:5e:01:01:01 2447 2401 local grp2=239.2.2.2 2402 + local grp2_dmac=01:00:5e:02:02:02 2448 2403 local src=192.0.2.129 2449 2404 2450 2405 echo 2451 2406 echo "Data path: MDB torture test - IPv4 overlay / IPv6 underlay" 2452 2407 echo "----------------------------------------------------------" 2453 2408 2454 - mdb_torture_common $ns1 $vtep1_ip $vtep2_ip $grp1 $grp2 $src \ 2455 - "mausezahn" 2409 + mdb_torture_common $ns1 $vtep1_ip $vtep2_ip $grp1 $grp1_dmac $grp2 \ 2410 + $grp2_dmac $src "mausezahn" 2456 2411 } 2457 2412 2458 2413 mdb_torture_ipv6_ipv6() ··· 2463 2414 local vtep1_ip=2001:db8:1000::1 2464 2415 local vtep2_ip=2001:db8:2000::1 2465 2416 local grp1=ff0e::1 2417 + local grp1_dmac=33:33:00:00:00:01 2466 2418 local grp2=ff0e::2 2419 + local grp2_dmac=33:33:00:00:00:02 2467 2420 local src=2001:db8:100::1 2468 2421 2469 2422 echo 2470 2423 echo "Data path: MDB torture test - IPv6 overlay / IPv6 underlay" 2471 2424 echo "----------------------------------------------------------" 2472 2425 2473 - mdb_torture_common $ns1 $vtep1_ip $vtep2_ip $grp1 $grp2 $src \ 2474 - "mausezahn -6" 2426 + mdb_torture_common $ns1 $vtep1_ip $vtep2_ip $grp1 $grp1_dmac $grp2 \ 2427 + $grp2_dmac $src "mausezahn -6" 2475 2428 } 2476 2429 2477 2430 ################################################################################