diff options
author | stephen hemminger <shemminger@vyatta.com> | 2012-10-01 08:32:33 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-10-01 18:39:44 -0400 |
commit | edc7d57327bd08bfd04f41531d49b176369db218 (patch) | |
tree | c1005cd5c5e9006c4eb2de39b3d14598f2206892 /net | |
parent | de0a41484c47d783dd4d442914815076aa2caac2 (diff) |
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>
Diffstat (limited to 'net')
-rw-r--r-- | net/bridge/br_fdb.c | 3 | ||||
-rw-r--r-- | net/bridge/br_private.h | 2 | ||||
-rw-r--r-- | net/core/rtnetlink.c | 6 |
3 files changed, 7 insertions, 4 deletions
diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c index 02861190a3d4..d9576e6de2b8 100644 --- a/net/bridge/br_fdb.c +++ b/net/bridge/br_fdb.c | |||
@@ -608,7 +608,8 @@ static int fdb_add_entry(struct net_bridge_port *source, const __u8 *addr, | |||
608 | } | 608 | } |
609 | 609 | ||
610 | /* Add new permanent fdb entry with RTM_NEWNEIGH */ | 610 | /* Add new permanent fdb entry with RTM_NEWNEIGH */ |
611 | int br_fdb_add(struct ndmsg *ndm, struct net_device *dev, | 611 | int br_fdb_add(struct ndmsg *ndm, struct nlattr *tb[], |
612 | struct net_device *dev, | ||
612 | const unsigned char *addr, u16 nlh_flags) | 613 | const unsigned char *addr, u16 nlh_flags) |
613 | { | 614 | { |
614 | struct net_bridge_port *p; | 615 | struct net_bridge_port *p; |
diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h index 11a984b87e62..9b278c4ebee1 100644 --- a/net/bridge/br_private.h +++ b/net/bridge/br_private.h | |||
@@ -364,7 +364,7 @@ extern void br_fdb_update(struct net_bridge *br, | |||
364 | extern int br_fdb_delete(struct ndmsg *ndm, | 364 | extern int br_fdb_delete(struct ndmsg *ndm, |
365 | struct net_device *dev, | 365 | struct net_device *dev, |
366 | const unsigned char *addr); | 366 | const unsigned char *addr); |
367 | extern int br_fdb_add(struct ndmsg *nlh, | 367 | extern int br_fdb_add(struct ndmsg *nlh, struct nlattr *tb[], |
368 | struct net_device *dev, | 368 | struct net_device *dev, |
369 | const unsigned char *addr, | 369 | const unsigned char *addr, |
370 | u16 nlh_flags); | 370 | u16 nlh_flags); |
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index 92575370d9f0..76d4c2c3c89b 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c | |||
@@ -2090,7 +2090,8 @@ static int rtnl_fdb_add(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg) | |||
2090 | if ((!ndm->ndm_flags || ndm->ndm_flags & NTF_MASTER) && | 2090 | if ((!ndm->ndm_flags || ndm->ndm_flags & NTF_MASTER) && |
2091 | (dev->priv_flags & IFF_BRIDGE_PORT)) { | 2091 | (dev->priv_flags & IFF_BRIDGE_PORT)) { |
2092 | master = dev->master; | 2092 | master = dev->master; |
2093 | err = master->netdev_ops->ndo_fdb_add(ndm, dev, addr, | 2093 | err = master->netdev_ops->ndo_fdb_add(ndm, tb, |
2094 | dev, addr, | ||
2094 | nlh->nlmsg_flags); | 2095 | nlh->nlmsg_flags); |
2095 | if (err) | 2096 | if (err) |
2096 | goto out; | 2097 | goto out; |
@@ -2100,7 +2101,8 @@ static int rtnl_fdb_add(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg) | |||
2100 | 2101 | ||
2101 | /* Embedded bridge, macvlan, and any other device support */ | 2102 | /* Embedded bridge, macvlan, and any other device support */ |
2102 | if ((ndm->ndm_flags & NTF_SELF) && dev->netdev_ops->ndo_fdb_add) { | 2103 | if ((ndm->ndm_flags & NTF_SELF) && dev->netdev_ops->ndo_fdb_add) { |
2103 | err = dev->netdev_ops->ndo_fdb_add(ndm, dev, addr, | 2104 | err = dev->netdev_ops->ndo_fdb_add(ndm, tb, |
2105 | dev, addr, | ||
2104 | nlh->nlmsg_flags); | 2106 | nlh->nlmsg_flags); |
2105 | 2107 | ||
2106 | if (!err) { | 2108 | if (!err) { |