Scapy 2.8.0 moved the IGMPv3 layers to scapy.layers.igmp and kept scapy.contrib.igmpv3 only as a deprecated alias. IGMPv3mr is now IGMPv3_MR, a complete Membership Report that carries its own type and checksum. The "IGMPv3(type=0x22) / IGMPv3mr(...)" packet used by the "Traffic from external port not looped back to localnet" test is therefore built with two report headers, and the first one has zero group records. pinctrl learns no group from it and the test fails waiting for the 239.1.2.3 IGMP_Group row.
No scapy construction produces the same packet with both 2.7 and 2.8, so build the report with the send_igmp_v3_report() helper that the other IGMP tests already use. Assisted-by: Claude Opus 5.5, Claude Code Signed-off-by: Michal Arbet <[email protected]> --- tests/ovn.at | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/tests/ovn.at b/tests/ovn.at index 136b825f9..e0796a76c 100644 --- a/tests/ovn.at +++ b/tests/ovn.at @@ -47594,13 +47594,11 @@ mld_packet=$(fmt_pkt \ check as hv1 ovs-appctl netdev-dummy/receive br-phys_n1 $mld_packet # IGMPv3 report. Same scenario but with IPv4 multicast. -igmp_packet=$(fmt_pkt \ - "Ether(dst='01:00:5e:00:00:16', src='50:54:00:00:00:01') / \ - IP(src='10.0.0.1', dst='224.0.0.22', ttl=1, \ - options=IPOption_Router_Alert()) / \ - IGMPv3(type=0x22) / \ - IGMPv3mr(records=IGMPv3gr(rtype=4, maddr='239.1.2.3'))") -check as hv1 ovs-appctl netdev-dummy/receive br-phys_n1 $igmp_packet +send_igmp_v3_report br-phys_n1 hv1 \ + 505400000001 $(ip_to_hex 10 0 0 1) f9f8 \ + $(ip_to_hex 239 1 2 3) 04 e8f9 \ + igmp_packet.txt +igmp_packet=$(cat igmp_packet.txt) # Wait for pinctrl to fully process the IGMP/MLD reports and sync them # to the SB database. This guarantees that pinctrl has also re-injected -- 2.53.0 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
