|
@@ -7007,7 +7007,7 @@ static int ixgbe_ndo_fdb_add(struct ndmsg *ndm, struct nlattr *tb[],
|
|
|
int err;
|
|
|
|
|
|
if (!(adapter->flags & IXGBE_FLAG_SRIOV_ENABLED))
|
|
|
- return -EOPNOTSUPP;
|
|
|
+ return ndo_dflt_fdb_add(ndm, tb, dev, addr, flags);
|
|
|
|
|
|
/* Hardware does not support aging addresses so if a
|
|
|
* ndm_state is given only allow permanent addresses
|
|
@@ -7038,44 +7038,6 @@ static int ixgbe_ndo_fdb_add(struct ndmsg *ndm, struct nlattr *tb[],
|
|
|
return err;
|
|
|
}
|
|
|
|
|
|
-static int ixgbe_ndo_fdb_del(struct ndmsg *ndm, struct nlattr *tb[],
|
|
|
- struct net_device *dev,
|
|
|
- const unsigned char *addr)
|
|
|
-{
|
|
|
- struct ixgbe_adapter *adapter = netdev_priv(dev);
|
|
|
- int err = -EOPNOTSUPP;
|
|
|
-
|
|
|
- if (ndm->ndm_state & NUD_PERMANENT) {
|
|
|
- pr_info("%s: FDB only supports static addresses\n",
|
|
|
- ixgbe_driver_name);
|
|
|
- return -EINVAL;
|
|
|
- }
|
|
|
-
|
|
|
- if (adapter->flags & IXGBE_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 ixgbe_ndo_fdb_dump(struct sk_buff *skb,
|
|
|
- struct netlink_callback *cb,
|
|
|
- struct net_device *dev,
|
|
|
- int idx)
|
|
|
-{
|
|
|
- struct ixgbe_adapter *adapter = netdev_priv(dev);
|
|
|
-
|
|
|
- if (adapter->flags & IXGBE_FLAG_SRIOV_ENABLED)
|
|
|
- idx = ndo_dflt_fdb_dump(skb, cb, dev, idx);
|
|
|
-
|
|
|
- return idx;
|
|
|
-}
|
|
|
-
|
|
|
static int ixgbe_ndo_bridge_setlink(struct net_device *dev,
|
|
|
struct nlmsghdr *nlh)
|
|
|
{
|
|
@@ -7171,8 +7133,6 @@ static const struct net_device_ops ixgbe_netdev_ops = {
|
|
|
.ndo_set_features = ixgbe_set_features,
|
|
|
.ndo_fix_features = ixgbe_fix_features,
|
|
|
.ndo_fdb_add = ixgbe_ndo_fdb_add,
|
|
|
- .ndo_fdb_del = ixgbe_ndo_fdb_del,
|
|
|
- .ndo_fdb_dump = ixgbe_ndo_fdb_dump,
|
|
|
.ndo_bridge_setlink = ixgbe_ndo_bridge_setlink,
|
|
|
.ndo_bridge_getlink = ixgbe_ndo_bridge_getlink,
|
|
|
};
|