Bug 2160479

Summary: bridge port is added to the flow along with multicast join requested ports
Product: Red Hat Enterprise Linux Fast Datapath Reporter: Haresh Khandelwal <hakhande>
Component: ovn22.03Assignee: OVN Team <ovnteam>
Status: NEW --- QA Contact: Jianlin Shi <jishi>
Severity: unspecified Docs Contact:
Priority: medium    
Version: RHEL 8.0CC: bcafarel, ctrautma, dceara, echaudro, jiji, mmichels, qding, ralonsoh
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 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:
Bug Depends On:    
Bug Blocks: 2144562    

Description Haresh Khandelwal 2023-01-12 14:57:10 UTC
Description of problem:

Look at below flow. 

ufid:9d82fa32-c613-43f6-a2a3-f4ebdb6ccbc7, skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(mx-bond),packet_type(ns=0/0,id=0/0),eth(src=e4:43:4b:4a:0c:22,dst=01:00:5e:01:01:01),eth_type(0x8100),vlan(vid=415,pcp=0),encap(eth_type(0x0800),ipv4(src=0.0.0.0/0.0.0.0,dst=0.0.0.0/0.0.0.0,proto=0/0,tos=0/0,ttl=0/0,frag=no)), packets:4, bytes:336, used:0.810s, dp:tc, actions:br-data,pop_vlan,enp4s0f0np0_2,enp4s0f0np0_1

Here enp4s0f0np0_2,enp4s0f0np0_1 have subscribed to multicast group 224.1.1.1 and thus received the traffic. 

However, br-data port not supposed to be in the flow. This prevents flow to be offloaded as well. 

Doing same with geneve and i dont see any bridge ports added.

ufid:91f521a6-d87c-44df-a64b-99245a4d81c1, skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(enp4s0f1np1_1),packet_type(ns=0/0,id=0/0),eth(src=f8:f2:1e:03:bf:f9,dst=01:00:5e:01:01:01),eth_type(0x0800),ipv4(src=0.0.0.0/0.0.0.0,dst=224.1.1.1,proto=1,tos=0/0x3,ttl=0/0,frag=no),icmp(type=0/0,code=0/0), packets:16, bytes:1568, used:0.130s, offloaded:yes, dp:tc, actions:set(tunnel(tun_id=0x2,dst=10.10.51.77,ttl=64,tp_dst=6081,geneve({class=0x102,type=0x80,len=4,0x38007}),flags(csum|key))),genev_sys_6081,enp4s0f1np1_2

1 subscriber is external to the node and another from the same node. Flow is offloaded. 

Version-Release number of selected component (if applicable):
ovs 2.17
ovn22.03-22.03.0

How reproducible:
Always

Steps to Reproduce:
1. Send igmp join from vm to join a multicast group
2. Check the flow 
3.

Actual results:
Flow is not offloaded.

Expected results:
br-data doesnt send any join, so shall not be part of this flow. 

Additional info:

Comment 1 Marcelo Ricardo Leitner 2023-01-13 22:25:23 UTC
Is br-data also added when offload is disabled?
AFAICT this is breaking the offload, but the issue itself lies in a layer above in vswitchd.

Comment 4 Eelco Chaudron 2023-04-13 08:44:27 UTC
I do not think OVS is the one adding all the ports to the multicast group. I think it's OVN, however, you can check the OpenFlow rules to see what they look like and if they have br-data. If they do, you need to talk to the OVN fooks ;)

Comment 6 Dumitru Ceara 2023-04-19 12:54:35 UTC
I'm assuming br-data is the provider bridge (backing the OVN localnet port).  If so, it's expected that the localnet port is always included in the list of ports multicast traffic should be flooded to:

https://github.com/ovn-org/ovn/commit/97778ab3e422ac071faa67f9f477fd54977e9c04