From 750a405a5a6f6cdae7d14609b49051e59738177e Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Mon, 13 Oct 2008 07:17:08 -0700 Subject: [PATCH] Fix help text for ip link This is a variant of Patrick McHardy patch for help text. Add help for ip link add and ip link delete. The help conditional on what the kernel supports. Signed-off-by: Stephen Hemminger --- ip/iplink.c | 43 +++++++++++++++++++++++++++++++------------ 1 file changed, 31 insertions(+), 12 deletions(-) diff --git a/ip/iplink.c b/ip/iplink.c index 1c6b0d47..fd23db1f 100644 --- a/ip/iplink.c +++ b/ip/iplink.c @@ -38,22 +38,41 @@ #endif static void usage(void) __attribute__((noreturn)); +static int iplink_have_newlink(void); void iplink_usage(void) { - fprintf(stderr, "Usage: ip link set DEVICE { up | down |\n"); - fprintf(stderr, " arp { on | off } |\n"); - fprintf(stderr, " dynamic { on | off } |\n"); - fprintf(stderr, " multicast { on | off } |\n"); - fprintf(stderr, " allmulticast { on | off } |\n"); - fprintf(stderr, " promisc { on | off } |\n"); - fprintf(stderr, " trailers { on | off } |\n"); - fprintf(stderr, " txqueuelen PACKETS |\n"); - fprintf(stderr, " name NEWNAME |\n"); - fprintf(stderr, " address LLADDR | broadcast LLADDR |\n"); - fprintf(stderr, " mtu MTU }\n"); - fprintf(stderr, " netns PID }\n"); + if (iplink_have_newlink()) { + fprintf(stderr, "Usage: ip link add link DEV [ name ] NAME\n"); + fprintf(stderr, " [ txqueuelen PACKETS ]\n"); + fprintf(stderr, " [ address LLADDR ]\n"); + fprintf(stderr, " [ broadcast LLADDR ]\n"); + fprintf(stderr, " [ mtu MTU ]\n"); + fprintf(stderr, " type TYPE [ ARGS ]\n"); + fprintf(stderr, " ip link delete DEV type TYPE [ ARGS ]\n"); + fprintf(stderr, "\n"); + fprintf(stderr, " ip link set DEVICE [ { up | down } ]\n"); + } else + fprintf(stderr, "Usage: ip link set DEVICE [ { up | down } ]\n"); + + fprintf(stderr, " [ arp { on | off } ]\n"); + fprintf(stderr, " [ dynamic { on | off } ]\n"); + fprintf(stderr, " [ multicast { on | off } ]\n"); + fprintf(stderr, " [ allmulticast { on | off } ]\n"); + fprintf(stderr, " [ promisc { on | off } ]\n"); + fprintf(stderr, " [ trailers { on | off } ]\n"); + fprintf(stderr, " [ txqueuelen PACKETS ]\n"); + fprintf(stderr, " [ name NEWNAME ]\n"); + fprintf(stderr, " [ address LLADDR ]\n"); + fprintf(stderr, " [ broadcast LLADDR ]\n"); + fprintf(stderr, " [ mtu MTU ]\n"); + fprintf(stderr, " [ netns PID ]\n"); fprintf(stderr, " ip link show [ DEVICE ]\n"); + + if (iplink_have_newlink()) { + fprintf(stderr, "\n"); + fprintf(stderr, "TYPE := { vlan | veth | dummy | ifb | macvlan }\n"); + } exit(-1); }