From: Alexander Duyck <aduyck@mirantis.com>
To: netdev@vger.kernel.org, intel-wired-lan@lists.osuosl.org
Cc: hannes@redhat.com, jesse@kernel.org, jbenc@redhat.com,
alexander.duyck@gmail.com, saeedm@mellanox.com,
ariel.elior@qlogic.com, tom@herbertland.com,
Dept-GELinuxNICDev@qlogic.com, davem@davemloft.net,
eugenia@mellanox.com
Subject: [net-next PATCH 00/15] Future-proof tunnel offload handlers
Date: Mon, 13 Jun 2016 10:47:44 -0700 [thread overview]
Message-ID: <20160613173750.15186.24381.stgit@localhost.localdomain> (raw)
This patch is meant to address two things. First we are currently using
the ndo_add/del_vxlan_port calls with VXLAN-GPE tunnels and we cannot
really support that as it is likely to cause more harm than good since
VXLAN-GPE can support tunnels without a MAC address on the inner header.
As such we need to add a new offload to advertise this, but in doing so it
would mean introducing 3 new functions for the driver to request the ports,
and then for the tunnel to push the changes to add and delete the ports to
the device. However instead of taking that approach I think it would be
much better if we just made one common function for fetching the ports, and
provided a generic means to push the tunnels to the device. So in order to
make this work this patch set does several things.
First it merges the existing VXLAN and GENEVE functionality into one set of
functions and passes an enum in order to specify the type of tunnel we want
to offload. By doing this we only have to extend this enum in the future
if we want to add additional types.
Second it goes through the drivers replacing all of the tunnel specific
offload calls with implementations that support the generic calls so that
we can drop the VXLAN and GENEVE specific calls entirely.
Finally I go through in the last patch and replace the VXLAN specific
offload request that was being used for VXLAN-GPE with one that specifies
if we want to offload VXLAN or VXLAN-GPE so that the hardware can decide if
it can actually support it or not.
I also ended up with some minor clean-up built into the driver patches for
this. Most of it is to either fix misuse of build flags, specifying a type
to ignore instead of the type that should be used, or in the case of ixgbe
I actually moved a rtnl_lock/unlock in order to avoid taking it unless it
was actually needed.
---
Alexander Duyck (15):
net: Combine GENEVE and VXLAN port offload notifiers into single functions
net: Merge VXLAN and GENEVE push notifiers into a single notifier
bnx2x: Move all UDP port notifiers to single function
bnxt: Replace ndo_add/del_vxlan_port with ndo_add/del_udp_enc_port
benet: Replace ndo_add/del_vxlan_port with ndo_add/del_udp_enc_port
fm10k: Replace ndo_add/del_vxlan_port with ndo_add/del_udp_enc_port
i40e: Move all UDP port notifiers to single function
ixgbe: Replace ndo_add/del_vxlan_port with ndo_add/del_udp_enc_port
mlx4_en: Replace ndo_add/del_vxlan_port with ndo_add/del_udp_enc_port
mlx5_en: Replace ndo_add/del_vxlan_port with ndo_add/del_udp_enc_port
nfp: Replace ndo_add/del_vxlan_port with ndo_add/del_udp_enc_port
qede: Move all UDP port notifiers to single function
qlcnic: Replace ndo_add/del_vxlan_port with ndo_add/del_udp_enc_port
net: Remove deprecated tunnel specific UDP offload functions
vxlan: Add new UDP encapsulation offload type for VXLAN-GPE
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 96 ++++++-------
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 22 ++-
drivers/net/ethernet/emulex/benet/be_main.c | 16 +-
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c | 18 ++
drivers/net/ethernet/intel/i40e/i40e_main.c | 148 +++++---------------
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 36 +++--
drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 30 +++-
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 18 ++
.../net/ethernet/netronome/nfp/nfp_net_common.c | 18 ++
drivers/net/ethernet/qlogic/qede/qede_main.c | 113 ++++++++-------
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 18 ++
drivers/net/geneve.c | 50 +------
drivers/net/vxlan.c | 56 ++------
include/linux/netdevice.h | 19 +--
include/net/geneve.h | 9 -
include/net/udp_tunnel.h | 19 +++
include/net/vxlan.h | 7 -
net/ipv4/udp_tunnel.c | 52 +++++++
18 files changed, 357 insertions(+), 388 deletions(-)
next reply other threads:[~2016-06-13 17:47 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-13 17:47 Alexander Duyck [this message]
2016-06-13 17:47 ` [net-next PATCH 01/15] net: Combine GENEVE and VXLAN port offload notifiers into single functions Alexander Duyck
2016-06-13 19:55 ` Tom Herbert
2016-06-13 20:24 ` Alexander Duyck
2016-06-13 20:36 ` Tom Herbert
2016-06-13 21:51 ` Alexander Duyck
2016-06-13 22:17 ` Tom Herbert
2016-06-13 23:12 ` Alexander Duyck
2016-06-14 0:28 ` Tom Herbert
2016-06-14 2:50 ` Alexander Duyck
2016-06-15 7:22 ` David Miller
2016-06-15 16:12 ` Tom Herbert
2016-06-13 17:48 ` [net-next PATCH 02/15] net: Merge VXLAN and GENEVE push notifiers into a single notifier Alexander Duyck
2016-06-13 17:57 ` Hannes Frederic Sowa
2016-06-13 19:31 ` Tom Herbert
2016-06-13 19:47 ` Alexander Duyck
2016-06-13 21:08 ` Hannes Frederic Sowa
2016-06-13 21:58 ` Alexander Duyck
2016-06-13 20:03 ` [Intel-wired-lan] " kbuild test robot
2016-06-13 17:48 ` [net-next PATCH 03/15] bnx2x: Move all UDP port notifiers to single function Alexander Duyck
2016-06-13 18:48 ` [Intel-wired-lan] " kbuild test robot
2016-06-13 17:48 ` [net-next PATCH 04/15] bnxt: Replace ndo_add/del_vxlan_port with ndo_add/del_udp_enc_port Alexander Duyck
2016-06-13 18:41 ` Jesse Gross
2016-06-13 19:14 ` Hannes Frederic Sowa
2016-06-13 19:16 ` Alex Duyck
2016-06-13 19:16 ` Michael Chan
2016-06-13 19:31 ` [Intel-wired-lan] " kbuild test robot
2016-06-13 19:45 ` kbuild test robot
2016-06-13 17:48 ` [net-next PATCH 05/15] benet: " Alexander Duyck
2016-06-13 17:48 ` [net-next PATCH 06/15] fm10k: " Alexander Duyck
2016-06-13 17:48 ` [net-next PATCH 07/15] i40e: Move all UDP port notifiers to single function Alexander Duyck
2016-06-13 17:48 ` [net-next PATCH 08/15] ixgbe: Replace ndo_add/del_vxlan_port with ndo_add/del_udp_enc_port Alexander Duyck
2016-06-13 17:49 ` [net-next PATCH 09/15] mlx4_en: " Alexander Duyck
2016-06-13 17:49 ` [net-next PATCH 10/15] mlx5_en: " Alexander Duyck
2016-06-13 17:49 ` [net-next PATCH 11/15] nfp: " Alexander Duyck
2016-06-13 17:49 ` [net-next PATCH 12/15] qede: Move all UDP port notifiers to single function Alexander Duyck
2016-06-13 17:49 ` [net-next PATCH 13/15] qlcnic: Replace ndo_add/del_vxlan_port with ndo_add/del_udp_enc_port Alexander Duyck
2016-06-13 17:49 ` [net-next PATCH 14/15] net: Remove deprecated tunnel specific UDP offload functions Alexander Duyck
2016-06-13 17:50 ` [net-next PATCH 15/15] vxlan: Add new UDP encapsulation offload type for VXLAN-GPE Alexander Duyck
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=20160613173750.15186.24381.stgit@localhost.localdomain \
--to=aduyck@mirantis.com \
--cc=Dept-GELinuxNICDev@qlogic.com \
--cc=alexander.duyck@gmail.com \
--cc=ariel.elior@qlogic.com \
--cc=davem@davemloft.net \
--cc=eugenia@mellanox.com \
--cc=hannes@redhat.com \
--cc=intel-wired-lan@lists.osuosl.org \
--cc=jbenc@redhat.com \
--cc=jesse@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=saeedm@mellanox.com \
--cc=tom@herbertland.com \
/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).