Netdev List
 help / color / mirror / Atom feed
From: Alexander Duyck <alexander.h.duyck@intel.com>
To: intel-wired-lan@lists.osuosl.org, jeffrey.t.kirsher@intel.com
Cc: netdev@vger.kernel.org
Subject: [iwl next-queue PATCH 08/10] ixgbe/fm10k: Only support macvlan offload for types that support destination filtering
Date: Tue, 03 Apr 2018 17:16:35 -0400	[thread overview]
Message-ID: <20180403211635.7880.27194.stgit@ahduyck-green-test.jf.intel.com> (raw)
In-Reply-To: <20180403211519.7880.70243.stgit@ahduyck-green-test.jf.intel.com>

Both the ixgbe and fm10k drivers support destination filtering.

Instead of adding a ton of complexity to support either source or passthru
mode we can instead just avoid offloading them for now. Doing this we avoid
leaking packets into interfaces that aren't meant to receive them.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
---
 drivers/net/ethernet/intel/fm10k/fm10k_netdev.c |    8 ++++++++
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c   |    7 +++++++
 2 files changed, 15 insertions(+)

diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_netdev.c b/drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
index ee645ba..26e7497 100644
--- a/drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
+++ b/drivers/net/ethernet/intel/fm10k/fm10k_netdev.c
@@ -22,6 +22,7 @@
 #include "fm10k.h"
 #include <linux/vmalloc.h>
 #include <net/udp_tunnel.h>
+#include <linux/if_macvlan.h>
 
 /**
  * fm10k_setup_tx_resources - allocate Tx resources (Descriptors)
@@ -1449,6 +1450,13 @@ static void *fm10k_dfwd_add_station(struct net_device *dev,
 	int size = 0, i;
 	u16 glort;
 
+	/* The hardware supported by fm10k only filters on the destination MAC
+	 * address. In order to avoid issues we only support offloading modes
+	 * where the hardware can actually provide the functionality.
+	 */
+	if (!macvlan_supports_dest_filter(sdev))
+		return ERR_PTR(-EMEDIUMTYPE);
+
 	/* allocate l2 accel structure if it is not available */
 	if (!l2_accel) {
 		/* verify there is enough free GLORTs to support l2_accel */
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 2c5100e..7c0f310 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -9744,6 +9744,13 @@ static void *ixgbe_fwd_add(struct net_device *pdev, struct net_device *vdev)
 	unsigned int limit;
 	int pool, err;
 
+	/* The hardware supported by ixgbe only filters on the destination MAC
+	 * address. In order to avoid issues we only support offloading modes
+	 * where the hardware can actually provide the functionality.
+	 */
+	if (!macvlan_supports_dest_filter(vdev))
+		return ERR_PTR(-EMEDIUMTYPE);
+
 	/* Hardware has a limited number of available pools. Each VF, and the
 	 * PF require a pool. Check to ensure we don't attempt to use more
 	 * then the available number of pools.

  parent reply	other threads:[~2018-04-03 21:23 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-03 21:15 [iwl next-queue PATCH 00/10] Clean-up macvlan offloading Alexander Duyck
2018-04-03 21:15 ` [iwl next-queue PATCH 01/10] ixgbe: Drop support for macvlan specific unicast lists Alexander Duyck
2018-04-03 21:16 ` [iwl next-queue PATCH 02/10] macvlan: Rename fwd_priv to accel_priv and add accessor function Alexander Duyck
2018-04-04 16:53   ` [Intel-wired-lan] " Shannon Nelson
2018-04-04 17:33     ` Alexander Duyck
2018-04-03 21:16 ` [iwl next-queue PATCH 03/10] macvlan: Use software path for offloaded local, broadcast, and multicast traffic Alexander Duyck
2018-04-04 16:53   ` [Intel-wired-lan] " Shannon Nelson
2018-04-04 17:02     ` Alexander Duyck
2018-04-03 21:16 ` [iwl next-queue PATCH 04/10] ixgbe/fm10k: Drop tracking stats for macvlan broadcast/multicast Alexander Duyck
2018-04-03 21:16 ` [iwl next-queue PATCH 05/10] macvlan: macvlan_count_rx shouldn't be static inline AND extern Alexander Duyck
2018-04-03 21:16 ` [iwl next-queue PATCH 06/10] macvlan: Add function to test for destination filtering support Alexander Duyck
2018-04-03 21:16 ` [iwl next-queue PATCH 07/10] macvlan: Provide function for interfaces to release HW offload Alexander Duyck
2018-04-03 21:16 ` Alexander Duyck [this message]
2018-04-03 21:16 ` [iwl next-queue PATCH 09/10] ixgbe: Drop real_adapter from l2 fwd acceleration structure Alexander Duyck
2018-04-03 21:16 ` [iwl next-queue PATCH 10/10] ixgbe: Avoid performing unnecessary resets for macvlan offload 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=20180403211635.7880.27194.stgit@ahduyck-green-test.jf.intel.com \
    --to=alexander.h.duyck@intel.com \
    --cc=intel-wired-lan@lists.osuosl.org \
    --cc=jeffrey.t.kirsher@intel.com \
    --cc=netdev@vger.kernel.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