mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-08 14:23:19 +00:00
netlink: add attributes to fdb interface
Later changes need to be able to refer to neighbour attributes when doing fdb_add. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
de0a41484c
commit
edc7d57327
@ -6889,7 +6889,7 @@ static int ixgbe_set_features(struct net_device *netdev,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ixgbe_ndo_fdb_add(struct ndmsg *ndm,
|
||||
static int ixgbe_ndo_fdb_add(struct ndmsg *ndm, struct nlattr *tb[],
|
||||
struct net_device *dev,
|
||||
const unsigned char *addr,
|
||||
u16 flags)
|
||||
|
@ -546,7 +546,7 @@ static int macvlan_vlan_rx_kill_vid(struct net_device *dev,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int macvlan_fdb_add(struct ndmsg *ndm,
|
||||
static int macvlan_fdb_add(struct ndmsg *ndm, struct nlattr *tb[],
|
||||
struct net_device *dev,
|
||||
const unsigned char *addr,
|
||||
u16 flags)
|
||||
|
@ -904,7 +904,8 @@ struct netdev_fcoe_hbainfo {
|
||||
* feature set might be less than what was returned by ndo_fix_features()).
|
||||
* Must return >0 or -errno if it changed dev->features itself.
|
||||
*
|
||||
* int (*ndo_fdb_add)(struct ndmsg *ndm, struct net_device *dev,
|
||||
* int (*ndo_fdb_add)(struct ndmsg *ndm, struct nlattr *tb[],
|
||||
* struct net_device *dev,
|
||||
* const unsigned char *addr, u16 flags)
|
||||
* Adds an FDB entry to dev for addr.
|
||||
* int (*ndo_fdb_del)(struct ndmsg *ndm, struct net_device *dev,
|
||||
@ -1014,6 +1015,7 @@ struct net_device_ops {
|
||||
void (*ndo_neigh_destroy)(struct neighbour *n);
|
||||
|
||||
int (*ndo_fdb_add)(struct ndmsg *ndm,
|
||||
struct nlattr *tb[],
|
||||
struct net_device *dev,
|
||||
const unsigned char *addr,
|
||||
u16 flags);
|
||||
|
@ -608,7 +608,8 @@ static int fdb_add_entry(struct net_bridge_port *source, const __u8 *addr,
|
||||
}
|
||||
|
||||
/* Add new permanent fdb entry with RTM_NEWNEIGH */
|
||||
int br_fdb_add(struct ndmsg *ndm, struct net_device *dev,
|
||||
int br_fdb_add(struct ndmsg *ndm, struct nlattr *tb[],
|
||||
struct net_device *dev,
|
||||
const unsigned char *addr, u16 nlh_flags)
|
||||
{
|
||||
struct net_bridge_port *p;
|
||||
|
@ -364,7 +364,7 @@ extern void br_fdb_update(struct net_bridge *br,
|
||||
extern int br_fdb_delete(struct ndmsg *ndm,
|
||||
struct net_device *dev,
|
||||
const unsigned char *addr);
|
||||
extern int br_fdb_add(struct ndmsg *nlh,
|
||||
extern int br_fdb_add(struct ndmsg *nlh, struct nlattr *tb[],
|
||||
struct net_device *dev,
|
||||
const unsigned char *addr,
|
||||
u16 nlh_flags);
|
||||
|
@ -2090,7 +2090,8 @@ static int rtnl_fdb_add(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg)
|
||||
if ((!ndm->ndm_flags || ndm->ndm_flags & NTF_MASTER) &&
|
||||
(dev->priv_flags & IFF_BRIDGE_PORT)) {
|
||||
master = dev->master;
|
||||
err = master->netdev_ops->ndo_fdb_add(ndm, dev, addr,
|
||||
err = master->netdev_ops->ndo_fdb_add(ndm, tb,
|
||||
dev, addr,
|
||||
nlh->nlmsg_flags);
|
||||
if (err)
|
||||
goto out;
|
||||
@ -2100,7 +2101,8 @@ static int rtnl_fdb_add(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg)
|
||||
|
||||
/* Embedded bridge, macvlan, and any other device support */
|
||||
if ((ndm->ndm_flags & NTF_SELF) && dev->netdev_ops->ndo_fdb_add) {
|
||||
err = dev->netdev_ops->ndo_fdb_add(ndm, dev, addr,
|
||||
err = dev->netdev_ops->ndo_fdb_add(ndm, tb,
|
||||
dev, addr,
|
||||
nlh->nlmsg_flags);
|
||||
|
||||
if (!err) {
|
||||
|
Loading…
Reference in New Issue
Block a user