* [net-next] i40e: enable fdb add code, remove unused code
@ 2014-11-21 0:30 Jeff Kirsher
2014-11-21 4:50 ` Or Gerlitz
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Jeff Kirsher @ 2014-11-21 0:30 UTC (permalink / raw)
To: davem; +Cc: Jesse Brandeburg, netdev, nhorman, sassmann, jogreene,
Jeff Kirsher
From: Jesse Brandeburg <jesse.brandeburg@intel.com>
The original FDB code submission wasn't correct and the code
wasn't enabled. This removes some dead code (can use the common kernel
code for fdb_del and fdb_dump) and correctly enables the fdb_add
function pointer.
The fdb_add functionality is important to i40e because it is needed
for a workaround to allow bridges to work correctly on the i40e
hardware.
Reported-by: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Acked-by: Greg Rose <gregory.v.rose@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_main.c | 71 ++++-------------------------
1 file changed, 8 insertions(+), 63 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 3913329..7262077 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -7526,18 +7526,18 @@ static int i40e_get_phys_port_id(struct net_device *netdev,
return 0;
}
-#ifdef HAVE_FDB_OPS
-#ifdef USE_CONST_DEV_UC_CHAR
+/**
+ * i40e_ndo_fdb_add - add an entry to the hardware database
+ * @ndm: the input from the stack
+ * @tb: pointer to array of nladdr (unused)
+ * @dev: the net device pointer
+ * @addr: the MAC address entry being added
+ * @flags: instructions from stack about fdb operation
+ */
static int i40e_ndo_fdb_add(struct ndmsg *ndm, struct nlattr *tb[],
struct net_device *dev,
const unsigned char *addr,
u16 flags)
-#else
-static int i40e_ndo_fdb_add(struct ndmsg *ndm,
- struct net_device *dev,
- unsigned char *addr,
- u16 flags)
-#endif
{
struct i40e_netdev_priv *np = netdev_priv(dev);
struct i40e_pf *pf = np->vsi->back;
@@ -7568,55 +7568,6 @@ static int i40e_ndo_fdb_add(struct ndmsg *ndm,
return err;
}
-#ifndef USE_DEFAULT_FDB_DEL_DUMP
-#ifdef USE_CONST_DEV_UC_CHAR
-static int i40e_ndo_fdb_del(struct ndmsg *ndm,
- struct net_device *dev,
- const unsigned char *addr)
-#else
-static int i40e_ndo_fdb_del(struct ndmsg *ndm,
- struct net_device *dev,
- unsigned char *addr)
-#endif
-{
- struct i40e_netdev_priv *np = netdev_priv(dev);
- struct i40e_pf *pf = np->vsi->back;
- int err = -EOPNOTSUPP;
-
- if (ndm->ndm_state & NUD_PERMANENT) {
- netdev_info(dev, "FDB only supports static addresses\n");
- return -EINVAL;
- }
-
- if (pf->flags & I40E_FLAG_SRIOV_ENABLED) {
- if (is_unicast_ether_addr(addr))
- err = dev_uc_del(dev, addr);
- else if (is_multicast_ether_addr(addr))
- err = dev_mc_del(dev, addr);
- else
- err = -EINVAL;
- }
-
- return err;
-}
-
-static int i40e_ndo_fdb_dump(struct sk_buff *skb,
- struct netlink_callback *cb,
- struct net_device *dev,
- struct net_device *filter_dev,
- int idx)
-{
- struct i40e_netdev_priv *np = netdev_priv(dev);
- struct i40e_pf *pf = np->vsi->back;
-
- if (pf->flags & I40E_FLAG_SRIOV_ENABLED)
- idx = ndo_dflt_fdb_dump(skb, cb, dev, filter_dev, idx);
-
- return idx;
-}
-
-#endif /* USE_DEFAULT_FDB_DEL_DUMP */
-#endif /* HAVE_FDB_OPS */
static const struct net_device_ops i40e_netdev_ops = {
.ndo_open = i40e_open,
.ndo_stop = i40e_close,
@@ -7650,13 +7601,7 @@ static const struct net_device_ops i40e_netdev_ops = {
.ndo_del_vxlan_port = i40e_del_vxlan_port,
#endif
.ndo_get_phys_port_id = i40e_get_phys_port_id,
-#ifdef HAVE_FDB_OPS
.ndo_fdb_add = i40e_ndo_fdb_add,
-#ifndef USE_DEFAULT_FDB_DEL_DUMP
- .ndo_fdb_del = i40e_ndo_fdb_del,
- .ndo_fdb_dump = i40e_ndo_fdb_dump,
-#endif
-#endif
};
/**
--
1.9.3
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [net-next] i40e: enable fdb add code, remove unused code
2014-11-21 0:30 [net-next] i40e: enable fdb add code, remove unused code Jeff Kirsher
@ 2014-11-21 4:50 ` Or Gerlitz
2014-11-22 5:53 ` Jeff Kirsher
2014-11-21 7:50 ` Jiri Pirko
2014-11-22 21:56 ` David Miller
2 siblings, 1 reply; 5+ messages in thread
From: Or Gerlitz @ 2014-11-21 4:50 UTC (permalink / raw)
To: Jeff Kirsher
Cc: David Miller, Jesse Brandeburg, Linux Netdev List, nhorman,
sassmann, jogreene
On Fri, Nov 21, 2014 at 2:30 AM, Jeff Kirsher
<jeffrey.t.kirsher@intel.com> wrote:
> From: Jesse Brandeburg <jesse.brandeburg@intel.com>
> The fdb_add functionality is important to i40e because it is needed
> for a workaround to allow bridges to work correctly on the i40e
> hardware.
Can you please shed more light on the precise problem and solution? I
wonder if one or two of them are generic... so might can/need land
somewhere upper...
Or.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [net-next] i40e: enable fdb add code, remove unused code
2014-11-21 4:50 ` Or Gerlitz
@ 2014-11-22 5:53 ` Jeff Kirsher
0 siblings, 0 replies; 5+ messages in thread
From: Jeff Kirsher @ 2014-11-22 5:53 UTC (permalink / raw)
To: Or Gerlitz
Cc: David Miller, Jesse Brandeburg, Linux Netdev List, nhorman,
sassmann, jogreene
[-- Attachment #1: Type: text/plain, Size: 739 bytes --]
On Fri, 2014-11-21 at 06:50 +0200, Or Gerlitz wrote:
> On Fri, Nov 21, 2014 at 2:30 AM, Jeff Kirsher
> <jeffrey.t.kirsher@intel.com> wrote:
> > From: Jesse Brandeburg <jesse.brandeburg@intel.com>
>
> > The fdb_add functionality is important to i40e because it is needed
> > for a workaround to allow bridges to work correctly on the i40e
> > hardware.
>
> Can you please shed more light on the precise problem and solution? I
> wonder if one or two of them are generic... so might can/need land
> somewhere upper...
This is not a generic problem, it is an errata related to source pruning
that can be worked around by adding VSI MAC addresses to the HW filters.
Information about it can be found in the driver readme.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [net-next] i40e: enable fdb add code, remove unused code
2014-11-21 0:30 [net-next] i40e: enable fdb add code, remove unused code Jeff Kirsher
2014-11-21 4:50 ` Or Gerlitz
@ 2014-11-21 7:50 ` Jiri Pirko
2014-11-22 21:56 ` David Miller
2 siblings, 0 replies; 5+ messages in thread
From: Jiri Pirko @ 2014-11-21 7:50 UTC (permalink / raw)
To: Jeff Kirsher; +Cc: davem, Jesse Brandeburg, netdev, nhorman, sassmann, jogreene
Fri, Nov 21, 2014 at 01:30:02AM CET, jeffrey.t.kirsher@intel.com wrote:
>From: Jesse Brandeburg <jesse.brandeburg@intel.com>
>
>The original FDB code submission wasn't correct and the code
>wasn't enabled. This removes some dead code (can use the common kernel
>code for fdb_del and fdb_dump) and correctly enables the fdb_add
>function pointer.
>
>The fdb_add functionality is important to i40e because it is needed
>for a workaround to allow bridges to work correctly on the i40e
>hardware.
>
>Reported-by: Jiri Pirko <jiri@resnulli.us>
>Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
>Acked-by: Greg Rose <gregory.v.rose@intel.com>
>Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jiri Pirko <jiri@resnulli.us>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [net-next] i40e: enable fdb add code, remove unused code
2014-11-21 0:30 [net-next] i40e: enable fdb add code, remove unused code Jeff Kirsher
2014-11-21 4:50 ` Or Gerlitz
2014-11-21 7:50 ` Jiri Pirko
@ 2014-11-22 21:56 ` David Miller
2 siblings, 0 replies; 5+ messages in thread
From: David Miller @ 2014-11-22 21:56 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: jesse.brandeburg, netdev, nhorman, sassmann, jogreene
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Thu, 20 Nov 2014 16:30:02 -0800
> From: Jesse Brandeburg <jesse.brandeburg@intel.com>
>
> The original FDB code submission wasn't correct and the code
> wasn't enabled. This removes some dead code (can use the common kernel
> code for fdb_del and fdb_dump) and correctly enables the fdb_add
> function pointer.
>
> The fdb_add functionality is important to i40e because it is needed
> for a workaround to allow bridges to work correctly on the i40e
> hardware.
>
> Reported-by: Jiri Pirko <jiri@resnulli.us>
> Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
> Acked-by: Greg Rose <gregory.v.rose@intel.com>
> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Applied, thanks Jeff.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-11-22 21:57 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-21 0:30 [net-next] i40e: enable fdb add code, remove unused code Jeff Kirsher
2014-11-21 4:50 ` Or Gerlitz
2014-11-22 5:53 ` Jeff Kirsher
2014-11-21 7:50 ` Jiri Pirko
2014-11-22 21:56 ` David Miller
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).