net: add IFLA_TSO_{MAX_SIZE|SEGS} attributes
New netlink attributes IFLA_TSO_MAX_SIZE and IFLA_TSO_MAX_SEGS are used to report to user-space the device TSO limits. ip -d link sh dev eth1 ... tso_max_size 65536 tso_max_segs 65535 Signed-off-by: Eric Dumazet <edumazet@google.com> Acked-by: Alexander Duyck <alexanderduyck@fb.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
5cf15ce3c8
commit
89527be8d8
3 changed files with 10 additions and 0 deletions
|
@ -368,6 +368,8 @@ enum {
|
||||||
IFLA_PARENT_DEV_NAME,
|
IFLA_PARENT_DEV_NAME,
|
||||||
IFLA_PARENT_DEV_BUS_NAME,
|
IFLA_PARENT_DEV_BUS_NAME,
|
||||||
IFLA_GRO_MAX_SIZE,
|
IFLA_GRO_MAX_SIZE,
|
||||||
|
IFLA_TSO_MAX_SIZE,
|
||||||
|
IFLA_TSO_MAX_SEGS,
|
||||||
|
|
||||||
__IFLA_MAX
|
__IFLA_MAX
|
||||||
};
|
};
|
||||||
|
|
|
@ -1064,6 +1064,8 @@ static noinline size_t if_nlmsg_size(const struct net_device *dev,
|
||||||
+ nla_total_size(4) /* IFLA_GSO_MAX_SEGS */
|
+ nla_total_size(4) /* IFLA_GSO_MAX_SEGS */
|
||||||
+ nla_total_size(4) /* IFLA_GSO_MAX_SIZE */
|
+ nla_total_size(4) /* IFLA_GSO_MAX_SIZE */
|
||||||
+ nla_total_size(4) /* IFLA_GRO_MAX_SIZE */
|
+ nla_total_size(4) /* IFLA_GRO_MAX_SIZE */
|
||||||
|
+ nla_total_size(4) /* IFLA_TSO_MAX_SIZE */
|
||||||
|
+ nla_total_size(4) /* IFLA_TSO_MAX_SEGS */
|
||||||
+ nla_total_size(1) /* IFLA_OPERSTATE */
|
+ nla_total_size(1) /* IFLA_OPERSTATE */
|
||||||
+ nla_total_size(1) /* IFLA_LINKMODE */
|
+ nla_total_size(1) /* IFLA_LINKMODE */
|
||||||
+ nla_total_size(4) /* IFLA_CARRIER_CHANGES */
|
+ nla_total_size(4) /* IFLA_CARRIER_CHANGES */
|
||||||
|
@ -1769,6 +1771,8 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb,
|
||||||
nla_put_u32(skb, IFLA_GSO_MAX_SEGS, dev->gso_max_segs) ||
|
nla_put_u32(skb, IFLA_GSO_MAX_SEGS, dev->gso_max_segs) ||
|
||||||
nla_put_u32(skb, IFLA_GSO_MAX_SIZE, dev->gso_max_size) ||
|
nla_put_u32(skb, IFLA_GSO_MAX_SIZE, dev->gso_max_size) ||
|
||||||
nla_put_u32(skb, IFLA_GRO_MAX_SIZE, dev->gro_max_size) ||
|
nla_put_u32(skb, IFLA_GRO_MAX_SIZE, dev->gro_max_size) ||
|
||||||
|
nla_put_u32(skb, IFLA_TSO_MAX_SIZE, dev->tso_max_size) ||
|
||||||
|
nla_put_u32(skb, IFLA_TSO_MAX_SEGS, dev->tso_max_segs) ||
|
||||||
#ifdef CONFIG_RPS
|
#ifdef CONFIG_RPS
|
||||||
nla_put_u32(skb, IFLA_NUM_RX_QUEUES, dev->num_rx_queues) ||
|
nla_put_u32(skb, IFLA_NUM_RX_QUEUES, dev->num_rx_queues) ||
|
||||||
#endif
|
#endif
|
||||||
|
@ -1922,6 +1926,8 @@ static const struct nla_policy ifla_policy[IFLA_MAX+1] = {
|
||||||
[IFLA_NEW_IFINDEX] = NLA_POLICY_MIN(NLA_S32, 1),
|
[IFLA_NEW_IFINDEX] = NLA_POLICY_MIN(NLA_S32, 1),
|
||||||
[IFLA_PARENT_DEV_NAME] = { .type = NLA_NUL_STRING },
|
[IFLA_PARENT_DEV_NAME] = { .type = NLA_NUL_STRING },
|
||||||
[IFLA_GRO_MAX_SIZE] = { .type = NLA_U32 },
|
[IFLA_GRO_MAX_SIZE] = { .type = NLA_U32 },
|
||||||
|
[IFLA_TSO_MAX_SIZE] = { .type = NLA_REJECT },
|
||||||
|
[IFLA_TSO_MAX_SEGS] = { .type = NLA_REJECT },
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct nla_policy ifla_info_policy[IFLA_INFO_MAX+1] = {
|
static const struct nla_policy ifla_info_policy[IFLA_INFO_MAX+1] = {
|
||||||
|
|
|
@ -348,6 +348,8 @@ enum {
|
||||||
IFLA_PARENT_DEV_NAME,
|
IFLA_PARENT_DEV_NAME,
|
||||||
IFLA_PARENT_DEV_BUS_NAME,
|
IFLA_PARENT_DEV_BUS_NAME,
|
||||||
IFLA_GRO_MAX_SIZE,
|
IFLA_GRO_MAX_SIZE,
|
||||||
|
IFLA_TSO_MAX_SIZE,
|
||||||
|
IFLA_TSO_MAX_SEGS,
|
||||||
|
|
||||||
__IFLA_MAX
|
__IFLA_MAX
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Reference in a new issue