Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
The FDP team is no longer accepting new bugs in Bugzilla. Please report your issues under FDP project in Jira. Thanks.

Bug 2094710

Summary: [OVN]when there are too many groups join, snooping works fail.
Product: Red Hat Enterprise Linux Fast Datapath Reporter: ying xu <yinxu>
Component: ovn22.03Assignee: xsimonar
Status: CLOSED ERRATA QA Contact: ying xu <yinxu>
Severity: high Docs Contact:
Priority: high    
Version: FDP 22.ECC: ctrautma, jiji, xsimonar
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: ovn22.03-22.03.0-104.el8fdp Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-11-03 00:30:13 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description ying xu 2022-06-08 08:39:49 UTC
Description of problem:
when there are too many groups join, snooping works fail.

Version-Release number of selected component (if applicable):
# rpm -qa|grep ovn
ovn22.03-22.03.0-52.el8fdp.x86_64
ovn22.03-central-22.03.0-52.el8fdp.x86_64
ovn22.03-host-22.03.0-52.el8fdp.x86_64

ovn22.03-22.03.0-52.el9fdp.x86_64
ovn22.03-central-22.03.0-52.el9fdp.x86_64
ovn22.03-host-22.03.0-52.el9fdp.x86_64

How reproducible:
always

Steps to Reproduce:

server:
               ovn-nbctl ls-add ls
                ovn-nbctl lsp-add ls vm1
                ovn-nbctl lsp-set-addresses vm1 00:00:00:00:00:01
                ovn-nbctl lsp-add ls vm2
                ovn-nbctl lsp-set-addresses vm2 00:00:00:00:00:02

                ovn-nbctl lsp-add ls vm3
                ovn-nbctl lsp-set-addresses vm3 00:00:00:00:00:03
                ovn-nbctl set logical_switch ls other_config:mcast_querier=false other_config:mcast_snoop=true other_config:mcast_query_interval=30 other_config:mcast_eth_src=00:00:00:00:00:05 other_config:mcast_ip4_src=42.42.42.5 other_config:mcast_ip6_src=fe80::1 other_config:mcast_idle_timeout=3000
                 rlRun "ovn-sbctl list ip_multicast"

                sleep 5
                ip netns add vm1
                ovs-vsctl add-port br-int vm1 -- set interface vm1 type=internal
                ip link set vm1 netns vm1
                ip netns exec vm1 ip link set vm1 address 00:00:00:00:00:01
                ip netns exec vm1 ip addr add 42.42.42.1/24 dev vm1
                ip netns exec vm1 ip -6 addr add 2000::1/24 dev vm1
                ip netns exec vm1 ip link set vm1 up
                ip netns exec vm1 ip route add default via 42.42.42.5
                ip netns exec vm1 ip -6 route add default via 2000::5
                ovs-vsctl set Interface vm1 external_ids:iface-id=vm1

client:
ip netns add vm2
                ovs-vsctl add-port br-int vm2 -- set interface vm2 type=internal
                ip link set vm2 netns vm2
                ip netns exec vm2 ip link set vm2 address 00:00:00:00:00:02
                ip netns exec vm2 ip addr add 42.42.42.2/24 dev vm2
                ip netns exec vm2 ip -6 addr add 2000::2/64 dev vm2
                ip netns exec vm2 ip link set vm2 up
                ip netns exec vm2 ip link set lo up
                ovs-vsctl set Interface vm2 external_ids:iface-id=vm2

                ip netns add vm3
                ovs-vsctl add-port br-int vm3 -- set interface vm3 type=internal
                ip link set vm3 netns vm3
                ip netns exec vm3 ip link set vm3 address 00:00:00:00:00:03
                ip netns exec vm3 ip addr add 42.42.42.3/24 dev vm3
                ip netns exec vm3 ip -6 addr add 2000::3/64 dev vm3
                ip netns exec vm3 ip link set vm3 up
                ip netns exec vm3 ip link set lo up
                ip netns exec vm2 ip route add default via 42.42.42.5
                ip netns exec vm3 ip route add default via 42.42.42.5
                ip netns exec vm2 ip -6 route add default via 2000::5
                ip netns exec vm3 ip -6 route add default via 2000::5
                ovs-vsctl set Interface vm3 external_ids:iface-id=vm3


now from vm3 join group 228.0.0.1

ip netns exec vm3 join_group -f 4 -g 228.0.0.1 -i vm3

then ping from vm1 
# ip netns exec vm1 ping 228.0.0.1
PING 228.0.0.1 (228.0.0.1) 56(84) bytes of data.
^C
--- 228.0.0.1 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3092ms

check on vm3 interface:
# ip netns exec vm3 tcpdump -i any -nnle
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked v1), capture size 262144 bytes
04:12:43.605756   M 00:00:00:00:00:01 ethertype IPv4 (0x0800), length 100: 42.42.42.1 > 228.0.0.1: ICMP echo request, id 56632, seq 1, length 64
04:12:44.649305   M 00:00:00:00:00:01 ethertype IPv4 (0x0800), length 100: 42.42.42.1 > 228.0.0.1: ICMP echo request, id 56632, seq 2, length 64
04:12:45.673346   M 00:00:00:00:00:01 ethertype IPv4 (0x0800), length 100: 42.42.42.1 > 228.0.0.1: ICMP echo request, id 56632, seq 3, length 64
04:12:46.697284   M 00:00:00:00:00:01 ethertype IPv4 (0x0800), length 100: 42.42.42.1 > 228.0.0.1: ICMP echo request, id 56632, seq 4, length 64


then send too many groups join:
for i in `seq 1 40`;do
                        ip netns exec vm2 join_group -f 4 -g 228.1.$i.1 -i vm2 -n 20 &
                done

                for i in `seq 1 40`;do
                        ip netns exec vm3 join_group -f 4 -g 229.1.$i.1 -i vm3 -n 20 &
                done


then,ping from vm1
# ovn-sbctl list multicast_group|grep 228.1.1.1
name                : "228.1.1.13"
name                : "228.1.1.10"
name                : "228.1.1.19"
name                : "228.1.1.1"

# ip netns exec vm1 ping 228.1.1.1
PING 228.1.1.1 (228.1.1.1) 56(84) bytes of data.
^C
--- 228.1.1.1 ping statistics ---
6 packets transmitted, 0 received, 100% packet loss, time 5149ms


check on vm2:  no packets got
# ip netns exec vm2 tcpdump -i any -nnle
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked v1), capture size 262144 bytes
04:18:18.510942 Out 00:00:00:00:00:02 ethertype IPv6 (0x86dd), length 72: fe80::200:ff:fe00:2 > ff02::2: ICMP6, router solicitation, length 16
^C
1 packet captured
1 packet received by filter
0 packets dropped by kernel


Expected results:
multicast packets forward correctly

Additional info:

Comment 2 OVN Bot 2022-10-04 02:38:39 UTC
ovn22.03 fast-datapath-rhel-9 clone created at https://bugzilla.redhat.com/show_bug.cgi?id=2131895
ovn22.06 fast-datapath-rhel-8 clone created at https://bugzilla.redhat.com/show_bug.cgi?id=2131899
ovn22.06 fast-datapath-rhel-9 clone created at https://bugzilla.redhat.com/show_bug.cgi?id=2131900
ovn22.09 fast-datapath-rhel-8 clone created at https://bugzilla.redhat.com/show_bug.cgi?id=2131903
ovn22.09 fast-datapath-rhel-9 clone created at https://bugzilla.redhat.com/show_bug.cgi?id=2131904

Comment 5 ying xu 2022-10-18 02:23:08 UTC
verified on 
ovn22.03-22.03.0-106.el8fdp.x86_64.rpm 


verified in job:
https://beaker.engineering.redhat.com/recipes/12754389/tasks/151363621/logs/taskout.log

Comment 7 errata-xmlrpc 2022-11-03 00:30:13 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (ovn22.03), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2022:7393