netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Yuval Mintz <yuvalm@mellanox.com>
To: netdev@vger.kernel.org
Cc: mlxsw@mellanox.com, kuznet@ms2.inr.ac.ru,
	yoshfuji@linux-ipv6.org, nikolay@cumulusnetworks.com,
	Yuval Mintz <yuvalm@mellanox.com>
Subject: [RFC net-next 00/11] ipmr, ip6mr: Align multicast routing for IPv4 & IPv6
Date: Wed, 21 Feb 2018 00:33:04 +0200	[thread overview]
Message-ID: <1519165995-50854-1-git-send-email-yuvalm@mellanox.com> (raw)

Historically ip6mr was based [cut-n-paste] on ipmr and the two have not
diverged too much. Apparently as ipv4 multicast routing is more common
than its ipv6 brethren modifications since then are mostly one-way,
affecting ipmr while leaving ip6mr unchanged.

This series is meant to re-factor both ipmr and ip6mr into having common
structures [and some functionality], adding 2 new common files -
mroute_base.h and ipmr_base.c.

The series begins by bringing ip6mr up to speed to some of the changes
applied in the past to ipmr [#2, #3].
It is then possible to re-factor a lot of the common structures - 
vif devices [#1], mr_table [#4] mfc_cache [#6], and use the common
structures in both ipmr and ip6mr.

The rest of the patches re-factor some choice flows used by both ipmr
and ip6mr and eliminates duplicity.

This series would later allow for easy extension of ipmr offloading
to support ip6mr offloading as well, as almost all structures
related to the offloading would be shared between the two protocols.

Yuval Mintz (11):
  ipmr,ipmr6: Define a uniform vif_device
  ip6mr: Make mroute_sk rcu-based
  ip6mr: Align hash implementation to ipmr
  mroute*: Make mr_table a common struct
  ipmr, ip6mr: Unite creation of new mr_table
  ipmr, ip6mr: Make mfc_cache a common structure
  ipmr, ip6mr: Unite logic for searching in MFC cache
  ipmr, ip6mr: Unite mfc seq logic
  ipmr, ip6mr: Unite vif seq logic
  ip6mr: Remove MFC_NOTIFY and refactor flags
  ipmr, ip6mr: Unite dumproute flows

 drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c |  21 +-
 include/linux/mroute.h                            |  88 +-
 include/linux/mroute6.h                           |  62 +-
 include/linux/mroute_base.h                       | 346 ++++++++
 include/net/netns/ipv6.h                          |   2 +-
 net/ipv4/Kconfig                                  |   5 +
 net/ipv4/Makefile                                 |   1 +
 net/ipv4/ipmr.c                                   | 576 ++++---------
 net/ipv4/ipmr_base.c                              | 323 +++++++
 net/ipv6/Kconfig                                  |   1 +
 net/ipv6/ip6_output.c                             |   2 +-
 net/ipv6/ip6mr.c                                  | 984 ++++++++--------------
 12 files changed, 1240 insertions(+), 1171 deletions(-)
 create mode 100644 include/linux/mroute_base.h
 create mode 100644 net/ipv4/ipmr_base.c

-- 
2.4.3

             reply	other threads:[~2018-02-20 22:34 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-20 22:33 Yuval Mintz [this message]
2018-02-20 22:33 ` [RFC net-next 01/11] ipmr,ipmr6: Define a uniform vif_device Yuval Mintz
2018-02-20 22:33 ` [RFC net-next 02/11] ip6mr: Make mroute_sk rcu-based Yuval Mintz
2018-02-20 22:33 ` [RFC net-next 03/11] ip6mr: Align hash implementation to ipmr Yuval Mintz
2018-02-20 22:33 ` [RFC net-next 04/11] mroute*: Make mr_table a common struct Yuval Mintz
2018-02-20 22:33 ` [RFC net-next 05/11] ipmr, ip6mr: Unite creation of new mr_table Yuval Mintz
2018-02-20 22:33 ` [RFC net-next 06/11] ipmr, ip6mr: Make mfc_cache a common structure Yuval Mintz
2018-02-20 22:33 ` [RFC net-next 07/11] ipmr, ip6mr: Unite logic for searching in MFC cache Yuval Mintz
2018-02-20 22:33 ` [RFC net-next 08/11] ipmr, ip6mr: Unite mfc seq logic Yuval Mintz
2018-02-20 22:33 ` [RFC net-next 09/11] ipmr, ip6mr: Unite vif seq functions Yuval Mintz
2018-02-20 22:33 ` [RFC net-next 10/11] ip6mr: Remove MFC_NOTIFY and refactor flags Yuval Mintz
2018-02-20 22:33 ` [RFC net-next 11/11] ipmr, ip6mr: Unite dumproute flows Yuval Mintz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1519165995-50854-1-git-send-email-yuvalm@mellanox.com \
    --to=yuvalm@mellanox.com \
    --cc=kuznet@ms2.inr.ac.ru \
    --cc=mlxsw@mellanox.com \
    --cc=netdev@vger.kernel.org \
    --cc=nikolay@cumulusnetworks.com \
    --cc=yoshfuji@linux-ipv6.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).