[patch iproute2 v2] iplink: add support for num[tr]xqueues
From: Jiri Pirko <jiri@resnulli.us>
Date: 2012-07-20 18:27:37
Subsystem:
networking drivers, the rest · Maintainers:
Andrew Lunn, "David S. Miller", Eric Dumazet, Jakub Kicinski, Paolo Abeni, Linus Torvalds
Signed-off-by: Jiri Pirko <jiri@resnulli.us> --- include/linux/if_link.h | 2 ++ ip/iplink.c | 20 ++++++++++++++++++++ man/man8/ip-link.8.in | 13 +++++++++++++ 3 files changed, 35 insertions(+) V1->V2 - Use "matches" instead of strcmp
diff --git a/include/linux/if_link.h b/include/linux/if_link.h
index 00e5868..46f03db 100644
--- a/include/linux/if_link.h
+++ b/include/linux/if_link.h@@ -140,6 +140,8 @@ enum { IFLA_EXT_MASK, /* Extended info mask, VFs, etc */ IFLA_PROMISCUITY, /* Promiscuity count: > 0 means acts PROMISC */ #define IFLA_PROMISCUITY IFLA_PROMISCUITY + IFLA_NUM_TX_QUEUES, + IFLA_NUM_RX_QUEUES, __IFLA_MAX };
diff --git a/ip/iplink.c b/ip/iplink.c
index 679091e..4111871 100644
--- a/ip/iplink.c
+++ b/ip/iplink.c@@ -48,6 +48,8 @@ void iplink_usage(void) fprintf(stderr, " [ address LLADDR ]\n"); fprintf(stderr, " [ broadcast LLADDR ]\n"); fprintf(stderr, " [ mtu MTU ]\n"); + fprintf(stderr, " [ numtxqueues QUEUE_COUNT ]\n"); + fprintf(stderr, " [ numrxqueues QUEUE_COUNT ]\n"); fprintf(stderr, " type TYPE [ ARGS ]\n"); fprintf(stderr, " ip link delete DEV type TYPE [ ARGS ]\n"); fprintf(stderr, "\n");
@@ -279,6 +281,8 @@ int iplink_parse(int argc, char **argv, struct iplink_req *req, int mtu = -1; int netns = -1; int vf = -1; + int numtxqueues = -1; + int numrxqueues = -1; *group = -1; ret = argc;
@@ -445,6 +449,22 @@ int iplink_parse(int argc, char **argv, struct iplink_req *req, invarg("Invalid operstate\n", *argv); addattr8(&req->n, sizeof(*req), IFLA_OPERSTATE, state); + } else if (matches(*argv, "numtxqueues") == 0) { + NEXT_ARG(); + if (numtxqueues != -1) + duparg("numtxqueues", *argv); + if (get_integer(&numtxqueues, *argv, 0)) + invarg("Invalid \"numtxqueues\" value\n", *argv); + addattr_l(&req->n, sizeof(*req), IFLA_NUM_TX_QUEUES, + &numtxqueues, 4); + } else if (matches(*argv, "numrxqueues") == 0) { + NEXT_ARG(); + if (numrxqueues != -1) + duparg("numrxqueues", *argv); + if (get_integer(&numrxqueues, *argv, 0)) + invarg("Invalid \"numrxqueues\" value\n", *argv); + addattr_l(&req->n, sizeof(*req), IFLA_NUM_RX_QUEUES, + &numrxqueues, 4); } else { if (strcmp(*argv, "dev") == 0) { NEXT_ARG();
diff --git a/man/man8/ip-link.8.in b/man/man8/ip-link.8.in
index 9386cc6..8a24e51 100644
--- a/man/man8/ip-link.8.in
+++ b/man/man8/ip-link.8.in@@ -40,6 +40,11 @@ ip-link \- network device configuration .RB "[ " mtu .IR MTU " ]" .br +.RB "[ " numtxqueues +.IR QUEUE_COUNT " ]" +.RB "[ " numrxqueues +.IR QUEUE_COUNT " ]" +.br .BR type " TYPE" .RI "[ " ARGS " ]"
@@ -156,6 +161,14 @@ Link types: - Ethernet Bridge device .in -8 +.TP +.BI numtxqueues " QUEUE_COUNT " +specifies the number of transmit queues for new device. + +.TP +.BI numrxqueues " QUEUE_COUNT " +specifies the number of receive queues for new device. + .SS ip link delete - delete virtual link .I DEVICE specifies the virtual device to act operate on.
--
1.7.10.4