On 7/19/22 22:40, Dumitru Ceara wrote:
> RFC 4541 "Considerations for Internet Group Management Protocol (IGMP)
> and Multicast Listener Discovery (MLD) Snooping Switches" [0] states:
> 
> For IGMP packets:
>     2.1.1.  IGMP Forwarding Rules
>        1) A snooping switch should forward IGMP Membership Reports only to
>           those ports where multicast routers are attached.
> 
>           Alternatively stated: a snooping switch should not forward IGMP
>           Membership Reports to ports on which only hosts are attached.  An
>           administrative control may be provided to override this
>           restriction, allowing the report messages to be flooded to other
>           ports.
> 
>           This is the main IGMP snooping functionality for the control path.
> 
>           Sending membership reports to other hosts can result, for IGMPv1
>           and IGMPv2, in unintentionally preventing a host from joining a
>           specific multicast group.
> 
>           When an IGMPv1 or IGMPv2 host receives a membership report for a
>           group address that it intends to join, the host will suppress its
>           own membership report for the same group.  This join or message
>           suppression is a requirement for IGMPv1 and IGMPv2 hosts.
>           However, if a switch does not receive a membership report from the
>           host it will not forward multicast data to it.
> 
> In OVN this translates to forwarding reports only on:
> a. ports where mrouters have been learned (IGMP queries were received on
>    those ports)
> b. ports connecting a multicast enabled logical switch to a multicast
>    relay enabled logical router (OVN mrouter)
> c. ports configured with mcast_flood_reports=true
> 
>     2.1.2.  Data Forwarding Rules
> 
>        1) Packets with a destination IP address outside 224.0.0.X which are
>           not IGMP should be forwarded according to group-based port
>           membership tables and must also be forwarded on router ports.
> 
> In OVN this translates to forwarding traffic for a group G to:
> a. all ports where G was learned
> b. all ports where an (external or OVN) mrouter was learned.
> c. all ports configured with mcast_flood=true
> 
> IGMP queries are already snooped by ovn-controller.  Just propagate the
> information about where mrouters are to the Southbound DB through means
> of a custom IGMP_Group (name="mrouters").
> 
> Snooped queries are then re-injected in the OVS pipeline with outport
> set to MC_FLOOD_L2 (only flood them in the L2 domain).
> 
> Snooped reports are re-injected in the OVS pipeline with outport set to
> MC_MROUTER_FLOOD (flood them to snooped mrouters and OVN mrouters).
> 
> The same behavior applies to IPv6 too (MLD).
> 
> [0] https://datatracker.ietf.org/doc/html/rfc4541
> 
> Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=1933990
> Reported-at: https://github.com/ovn-org/ovn/issues/126
> Acked-by: Numan Siddique <num...@ovn.org>
> Signed-off-by: Dumitru Ceara <dce...@redhat.com>

Lucas, sorry, I dropped your "Tested-by" by accident.  Would you have
some time by any chance to do a quick sanity test, just in case?  There
was no code change between v1 and v2 of this patch.

Thanks,
Dumitru

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to