[ovs-git] [openvswitch/ovs] 1db444: packets: Add IGMPv3 query packet definitions

Dumitru Ceara noreply at github.com
Tue Jul 16 21:47:42 UTC 2019


  Branch: refs/heads/master
  Home:   https://github.com/openvswitch/ovs
  Commit: 1db444539537f3ac776bec8d7752ac8306abb7d6
      https://github.com/openvswitch/ovs/commit/1db444539537f3ac776bec8d7752ac8306abb7d6
  Author: Dumitru Ceara <dceara at redhat.com>
  Date:   2019-07-16 (Tue, 16 Jul 2019)

  Changed paths:
    M lib/packets.c
    M lib/packets.h

  Log Message:
  -----------
  packets: Add IGMPv3 query packet definitions

Signed-off-by: Dumitru Ceara <dceara at redhat.com>
Acked-by: Mark Michelson <mmichels at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: c89f5f171a0a189137af46c9cf7f132e27a48ca9
      https://github.com/openvswitch/ovs/commit/c89f5f171a0a189137af46c9cf7f132e27a48ca9
  Author: Dumitru Ceara <dceara at redhat.com>
  Date:   2019-07-16 (Tue, 16 Jul 2019)

  Changed paths:
    M include/ovn/actions.h
    M ovn/controller/automake.mk
    A ovn/controller/ip-mcast.c
    A ovn/controller/ip-mcast.h
    M ovn/controller/ovn-controller.c
    M ovn/controller/pinctrl.c
    M ovn/controller/pinctrl.h
    M ovn/lib/actions.c
    M ovn/lib/automake.mk
    A ovn/lib/ip-mcast-index.c
    A ovn/lib/ip-mcast-index.h
    M ovn/lib/logical-fields.c
    M ovn/ovn-sb.ovsschema
    M ovn/ovn-sb.xml
    M ovn/utilities/ovn-sbctl.c
    M ovn/utilities/ovn-trace.c
    M tests/ovn.at

  Log Message:
  -----------
  OVN: Add IGMP SB definitions and ovn-controller support

A new IP_Multicast table is added to Southbound DB. This table stores the
multicast related configuration for each datapath. Each row will be
populated by ovn-northd and will control:
- if IGMP Snooping is enabled or not, the snooping table size and multicast
  group idle timeout.
- if IGMP Querier is enabled or not (only if snooping is enabled too), query
  interval, query source addresses (Ethernet and IP) and the max-response
  field to be stored in outgoing queries.
- an additional "seq_no" column is added such that ovn-sbctl or if needed a
  CMS can flush currently learned groups. This can be achieved by incrementing
  the "seq_no" value.

A new IGMP_Group table is added to Southbound DB. This table stores all the
multicast groups learned by ovn-controllers. The table is indexed by
datapath, group address and chassis. For a learned multicast group on a
specific datapath each ovn-controller will store its own row in this table.
Each row contains the list of chassis-local ports on which the group was
learned. Rows in the IGMP_Group table are updated or deleted only by the
ovn-controllers that created them.

A new action ("igmp") is added to punt IGMP packets on a specific logical
switch datapath to ovn-controller if IGMP snooping is enabled.

Per datapath IGMP multicast snooping support is added to pinctrl:
- incoming IGMP reports are processed and multicast groups are maintained
  (using the OVS mcast-snooping library).
- each OVN controller syncs its in-memory IGMP groups to the Southbound DB
  in the IGMP_Group table.
- pinctrl also sends periodic IGMPv3 general queries for all datapaths where
  querier is enabled.

Signed-off-by: Mark Michelson <mmichels at redhat.com>
Co-authored-by: Mark Michelson <mmichels at redhat.com>
Signed-off-by: Dumitru Ceara <dceara at redhat.com>
Acked-by: Mark Michelson <mmichels at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


  Commit: 605535f9adf2e881aa6242b19bcec0c90ba8ad96
      https://github.com/openvswitch/ovs/commit/605535f9adf2e881aa6242b19bcec0c90ba8ad96
  Author: Dumitru Ceara <dceara at redhat.com>
  Date:   2019-07-16 (Tue, 16 Jul 2019)

  Changed paths:
    M ovn/controller/ovn-controller.c
    M ovn/controller/pinctrl.c
    M ovn/lib/automake.mk
    M ovn/lib/ip-mcast-index.h
    A ovn/lib/mcast-group-index.c
    A ovn/lib/mcast-group-index.h
    M ovn/northd/ovn-northd.c
    M ovn/ovn-nb.xml
    M tests/ovn.at
    M tests/system-ovn.at

  Log Message:
  -----------
  OVN: Add ovn-northd IGMP support

New IP Multicast Snooping Options are added to the Northbound DB
Logical_Switch:other_config column. These allow enabling IGMP snooping and
querier on the logical switch and get translated by ovn-northd to rows in
the IP_Multicast Southbound DB table.

ovn-northd monitors for changes done by ovn-controllers in the Southbound DB
IGMP_Group table. Based on the entries in IGMP_Group ovn-northd creates
Multicast_Group entries in the Southbound DB, one per IGMP_Group address X,
containing the list of logical switch ports (aggregated from all controllers)
that have IGMP_Group entries for that datapath and address X. ovn-northd
also creates a logical flow that matches on IP multicast traffic destined
to address X and outputs it on the tunnel key of the corresponding
Multicast_Group entry.

Signed-off-by: Dumitru Ceara <dceara at redhat.com>
Acked-by: Mark Michelson <mmichels at redhat.com>
Signed-off-by: Ben Pfaff <blp at ovn.org>


Compare: https://github.com/openvswitch/ovs/compare/6778f245f6fc...605535f9adf2


More information about the git mailing list