[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220203044558.3039122-1-eric.dumazet@gmail.com>
Date: Wed, 2 Feb 2022 20:45:58 -0800
From: Eric Dumazet <eric.dumazet@...il.com>
To: David Ahern <dsahern@...il.com>,
Stephen Hemminger <stephen@...workplumber.org>
Cc: netdev <netdev@...r.kernel.org>,
Eric Dumazet <edumazet@...gle.com>,
Eric Dumazet <eric.dumazet@...il.com>,
Coco Li <lixiaoyan@...gle.com>
Subject: [PATCH v2 iproute2] iplink: add gro_max_size attribute handling
From: Coco Li <lixiaoyan@...gle.com>
Add the ability to display or change the gro_max_size attribute.
ip link set dev eth1 gro_max_size 60000
ip -d link show eth1
5: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 9198 qdisc mq master eth0 state UP mode DEFAULT group default qlen 1000
link/ether bc:ae:c5:39:69:66 brd ff:ff:ff:ff:ff:ff promiscuity 0 minmtu 46 maxmtu 9600
<...> gro_max_size 60000
Signed-off-by: Coco Li <lixiaoyan@...gle.com>
Signed-off-by: Eric Dumazet <edumazet@...gle.com>
---
ip/ipaddress.c | 6 ++++++
ip/iplink.c | 10 ++++++++++
2 files changed, 16 insertions(+)
diff --git a/ip/ipaddress.c b/ip/ipaddress.c
index 4109d8bd2c43640bee40656c124ea6393d95a345..739b0b9c9f348141b0e51f6231b547385af00eae 100644
--- a/ip/ipaddress.c
+++ b/ip/ipaddress.c
@@ -1219,6 +1219,12 @@ int print_linkinfo(struct nlmsghdr *n, void *arg)
"gso_max_segs %u ",
rta_getattr_u32(tb[IFLA_GSO_MAX_SEGS]));
+ if (tb[IFLA_GRO_MAX_SIZE])
+ print_uint(PRINT_ANY,
+ "gro_max_size",
+ "gro_max_size %u ",
+ rta_getattr_u32(tb[IFLA_GRO_MAX_SIZE]));
+
if (tb[IFLA_PHYS_PORT_NAME])
print_string(PRINT_ANY,
"phys_port_name",
diff --git a/ip/iplink.c b/ip/iplink.c
index a3ea775d2b23c47916e9554b8615d430a58c6a55..c0a3a9ad3e629986ee2da0ee80eaf758f98aee5f 100644
--- a/ip/iplink.c
+++ b/ip/iplink.c
@@ -118,6 +118,7 @@ void iplink_usage(void)
" [ protodown { on | off } ]\n"
" [ protodown_reason PREASON { on | off } ]\n"
" [ gso_max_size BYTES ] | [ gso_max_segs PACKETS ]\n"
+ " [ gro_max_size BYTES ]\n"
"\n"
" ip link show [ DEVICE | group GROUP ] [up] [master DEV] [vrf NAME] [type TYPE]\n"
" [nomaster]\n"
@@ -942,6 +943,15 @@ int iplink_parse(int argc, char **argv, struct iplink_req *req, char **type)
*argv);
addattr32(&req->n, sizeof(*req),
IFLA_GSO_MAX_SEGS, max_segs);
+ } else if (strcmp(*argv, "gro_max_size") == 0) {
+ unsigned int max_size;
+
+ NEXT_ARG();
+ if (get_unsigned(&max_size, *argv, 0))
+ invarg("Invalid \"gro_max_size\" value\n",
+ *argv);
+ addattr32(&req->n, sizeof(*req),
+ IFLA_GRO_MAX_SIZE, max_size);
} else if (strcmp(*argv, "parentdev") == 0) {
NEXT_ARG();
addattr_l(&req->n, sizeof(*req), IFLA_PARENT_DEV_NAME,
--
2.35.0.rc2.247.g8bbb082509-goog
Powered by blists - more mailing lists