bridge: implement rtnl_link_ops->get_slave_size and rtnl_link_ops->fill_slave_info
Allow rtnetlink users to get port info in IFLA_INFO_SLAVE_DATA attr Signed-off-by: Jiri Pirko <jiri@resnulli.us> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
0f49579a39
commit
ced8283f90
1 changed files with 21 additions and 6 deletions
|
@ -461,6 +461,19 @@ static int br_dev_newlink(struct net *src_net, struct net_device *dev,
|
|||
return register_netdevice(dev);
|
||||
}
|
||||
|
||||
static int br_port_fill_slave_info(struct sk_buff *skb,
|
||||
const struct net_device *brdev,
|
||||
const struct net_device *dev)
|
||||
{
|
||||
return br_port_fill_attrs(skb, br_port_get_rtnl(dev));
|
||||
}
|
||||
|
||||
static size_t br_port_get_slave_size(const struct net_device *brdev,
|
||||
const struct net_device *dev)
|
||||
{
|
||||
return br_port_info_size();
|
||||
}
|
||||
|
||||
static size_t br_get_link_af_size(const struct net_device *dev)
|
||||
{
|
||||
struct net_port_vlans *pv;
|
||||
|
@ -485,12 +498,14 @@ static struct rtnl_af_ops br_af_ops = {
|
|||
};
|
||||
|
||||
struct rtnl_link_ops br_link_ops __read_mostly = {
|
||||
.kind = "bridge",
|
||||
.priv_size = sizeof(struct net_bridge),
|
||||
.setup = br_dev_setup,
|
||||
.validate = br_validate,
|
||||
.newlink = br_dev_newlink,
|
||||
.dellink = br_dev_delete,
|
||||
.kind = "bridge",
|
||||
.priv_size = sizeof(struct net_bridge),
|
||||
.setup = br_dev_setup,
|
||||
.validate = br_validate,
|
||||
.newlink = br_dev_newlink,
|
||||
.dellink = br_dev_delete,
|
||||
.get_slave_size = br_port_get_slave_size,
|
||||
.fill_slave_info = br_port_fill_slave_info,
|
||||
};
|
||||
|
||||
int __init br_netlink_init(void)
|
||||
|
|
Loading…
Reference in a new issue