|
@@ -96,6 +96,10 @@ static const struct nla_policy bond_policy[IFLA_BOND_MAX + 1] = {
|
|
|
[IFLA_BOND_AD_INFO] = { .type = NLA_NESTED },
|
|
|
};
|
|
|
|
|
|
+static const struct nla_policy bond_slave_policy[IFLA_BOND_SLAVE_MAX + 1] = {
|
|
|
+ [IFLA_BOND_SLAVE_QUEUE_ID] = { .type = NLA_U16 },
|
|
|
+};
|
|
|
+
|
|
|
static int bond_validate(struct nlattr *tb[], struct nlattr *data[])
|
|
|
{
|
|
|
if (tb[IFLA_ADDRESS]) {
|
|
@@ -580,17 +584,18 @@ struct rtnl_link_ops bond_link_ops __read_mostly = {
|
|
|
.priv_size = sizeof(struct bonding),
|
|
|
.setup = bond_setup,
|
|
|
.maxtype = IFLA_BOND_MAX,
|
|
|
- .slave_maxtype = IFLA_BOND_SLAVE_MAX,
|
|
|
.policy = bond_policy,
|
|
|
.validate = bond_validate,
|
|
|
.newlink = bond_newlink,
|
|
|
.changelink = bond_changelink,
|
|
|
- .slave_changelink = bond_slave_changelink,
|
|
|
.get_size = bond_get_size,
|
|
|
.fill_info = bond_fill_info,
|
|
|
.get_num_tx_queues = bond_get_num_tx_queues,
|
|
|
.get_num_rx_queues = bond_get_num_tx_queues, /* Use the same number
|
|
|
as for TX queues */
|
|
|
+ .slave_maxtype = IFLA_BOND_SLAVE_MAX,
|
|
|
+ .slave_policy = bond_slave_policy,
|
|
|
+ .slave_changelink = bond_slave_changelink,
|
|
|
.get_slave_size = bond_get_slave_size,
|
|
|
.fill_slave_info = bond_fill_slave_info,
|
|
|
};
|