mbox series

[ovs-dev,v4,0/3] OVN: Add IGMP support

Message ID 20190715202422.11502.65972.stgit@dceara.remote.csb
Headers show
Series OVN: Add IGMP support | expand

Message

Dumitru Ceara July 15, 2019, 8:24 p.m. UTC
This series introduces support for IGMP Snooping and IGMP Querier. IGMP
versions v1-v3 are supported for snooping and IGMP queries originated by
ovn-controller are general IGMPv3 queries. The rationale behind using v3 for
querier is that it's backward compatible with v1-v2.

The majority of the code is IP version independent with the thought in mind
that support for MLD snooping for IPv6 will be added next.

Dumitru Ceara (3):
      packets: Add IGMPv3 query packet definitions
      OVN: Add IGMP SB definitions and ovn-controller support
      OVN: Add ovn-northd IGMP support


 include/ovn/actions.h           |    7 
 lib/packets.c                   |   44 ++
 lib/packets.h                   |   19 +
 ovn/controller/automake.mk      |    2 
 ovn/controller/ip-mcast.c       |  164 ++++++++
 ovn/controller/ip-mcast.h       |   52 +++
 ovn/controller/ovn-controller.c |   28 +
 ovn/controller/pinctrl.c        |  785 +++++++++++++++++++++++++++++++++++++++
 ovn/controller/pinctrl.h        |    2 
 ovn/lib/actions.c               |   16 +
 ovn/lib/automake.mk             |    4 
 ovn/lib/ip-mcast-index.c        |   40 ++
 ovn/lib/ip-mcast-index.h        |   36 ++
 ovn/lib/logical-fields.c        |    2 
 ovn/lib/mcast-group-index.c     |   43 ++
 ovn/lib/mcast-group-index.h     |   32 ++
 ovn/northd/ovn-northd.c         |  548 +++++++++++++++++++++++++--
 ovn/ovn-nb.xml                  |   54 +++
 ovn/ovn-sb.ovsschema            |   44 ++
 ovn/ovn-sb.xml                  |   80 ++++
 ovn/utilities/ovn-sbctl.c       |   53 +++
 ovn/utilities/ovn-trace.c       |    4 
 tests/ovn.at                    |  274 ++++++++++++++
 tests/system-ovn.at             |  119 ++++++
 24 files changed, 2404 insertions(+), 48 deletions(-)
 create mode 100644 ovn/controller/ip-mcast.c
 create mode 100644 ovn/controller/ip-mcast.h
 create mode 100644 ovn/lib/ip-mcast-index.c
 create mode 100644 ovn/lib/ip-mcast-index.h
 create mode 100644 ovn/lib/mcast-group-index.c
 create mode 100644 ovn/lib/mcast-group-index.h


---
v4:
- fix multicast_group tunnel key allocation so that the old group keys
  from the SB database are reused
- add mcast-group-index.[ch] to avoid code duplication between ovn-northd
  and ovn-controller

v3:
- add acks from Mark Michelson
- fix action "igmp": no need for nested actions
- fix overlap between unknown multicast tunnel key and IP multicast tunnel
  keys

v2: 
- address reviewer comments.
- fix a memory corruption when reallocating multicast ports in
  ovn_multicast_add_ports.
- add missing NULL checks in pinctrl.c for the case when a logical switch
  configuration gets deleted by ovn-northd and controllers are updating
  IGMP_Group entries.
- Fix allocation of multicast group IDs in ovn-northd. The multicast group
  IDs were allocated globally instead of per-datapath  which was limiting
  the total number of IGMP Groups. At most 32K IGMP groups can be learned
  per datapath regardless of how many datapaths are configured.
- add system-ovn.at test.

Comments

Ben Pfaff July 16, 2019, 9:48 p.m. UTC | #1
On Mon, Jul 15, 2019 at 10:24:26PM +0200, Dumitru Ceara wrote:
> This series introduces support for IGMP Snooping and IGMP Querier. IGMP
> versions v1-v3 are supported for snooping and IGMP queries originated by
> ovn-controller are general IGMPv3 queries. The rationale behind using v3 for
> querier is that it's backward compatible with v1-v2.
> 
> The majority of the code is IP version independent with the thought in mind
> that support for MLD snooping for IPv6 will be added next.

Thanks, applied to master.

Please send a follow-up patch that adds an appropriate item to NEWS.
Really I should have asked for that as part of the series, but I didn't
want to delay this any further.

Thanks again!
Dumitru Ceara July 17, 2019, 12:17 p.m. UTC | #2
On Tue, Jul 16, 2019 at 11:49 PM Ben Pfaff <blp@ovn.org> wrote:
>
> On Mon, Jul 15, 2019 at 10:24:26PM +0200, Dumitru Ceara wrote:
> > This series introduces support for IGMP Snooping and IGMP Querier. IGMP
> > versions v1-v3 are supported for snooping and IGMP queries originated by
> > ovn-controller are general IGMPv3 queries. The rationale behind using v3 for
> > querier is that it's backward compatible with v1-v2.
> >
> > The majority of the code is IP version independent with the thought in mind
> > that support for MLD snooping for IPv6 will be added next.
>
> Thanks, applied to master.
>
> Please send a follow-up patch that adds an appropriate item to NEWS.
> Really I should have asked for that as part of the series, but I didn't
> want to delay this any further.
>
> Thanks again!

Thanks for applying the series!
Sorry, I had forgotten the NEWS entry. I just sent a follow-up for it:
https://patchwork.ozlabs.org/patch/1133287/

Thanks,
Dumitru