]> git.proxmox.com Git - mirror_iproute2.git/commitdiff
ip: link: Unify link type help functions a bit
authorPhil Sutter <phil@nwl.cc>
Tue, 28 Mar 2017 21:19:38 +0000 (23:19 +0200)
committerStephen Hemminger <stephen@networkplumber.org>
Tue, 4 Apr 2017 21:51:29 +0000 (14:51 -0700)
Take help function in iplink_bridge.c as an example and make other link
types' help functions similar:

* Use a single fprintf() call (if possible).
* Don't state a full command line, just "... type OPTIONS".
* Put every option in it's own line, align options by column.
* List mandatory options first.

link_veth.c is intentionally left untouched because it's 'peer' option
eats all kinds of generic link options and the help text points this out
without duplicating all the options there again.

Signed-off-by: Phil Sutter <phil@nwl.cc>
ip/iplink_geneve.c
ip/iplink_ipoib.c
ip/iplink_vlan.c
ip/iplink_vxlan.c
ip/link_gre.c
ip/link_gre6.c
ip/link_ip6tnl.c
ip/link_iptnl.c
ip/link_vti.c

index 1e6669d07d60376c5fbfe6ae9208b99f057eb4c0..2c510fceb3c97bb34ec251f07617bb51a197d063 100644 (file)
 
 static void print_explain(FILE *f)
 {
-       fprintf(f, "Usage: ... geneve id VNI remote ADDR\n");
-       fprintf(f, "                 [ ttl TTL ] [ tos TOS ] [ flowlabel LABEL ]\n");
-       fprintf(f, "                 [ dstport PORT ] [ [no]external ]\n");
-       fprintf(f, "                 [ [no]udpcsum ] [ [no]udp6zerocsumtx ] [ [no]udp6zerocsumrx ]\n");
-       fprintf(f, "\n");
-       fprintf(f, "Where: VNI   := 0-16777215\n");
-       fprintf(f, "       ADDR  := IP_ADDRESS\n");
-       fprintf(f, "       TOS   := { NUMBER | inherit }\n");
-       fprintf(f, "       TTL   := { 1..255 | inherit }\n");
-       fprintf(f, "       LABEL := 0-1048575\n");
+       fprintf(f,
+               "Usage: ... geneve id VNI\n"
+               "                  remote ADDR\n"
+               "                  [ ttl TTL ]\n"
+               "                  [ tos TOS ]\n"
+               "                  [ flowlabel LABEL ]\n"
+               "                  [ dstport PORT ]\n"
+               "                  [ [no]external ]\n"
+               "                  [ [no]udpcsum ]\n"
+               "                  [ [no]udp6zerocsumtx ]\n"
+               "                  [ [no]udp6zerocsumrx ]\n"
+               "\n"
+               "Where: VNI   := 0-16777215\n"
+               "       ADDR  := IP_ADDRESS\n"
+               "       TOS   := { NUMBER | inherit }\n"
+               "       TTL   := { 1..255 | inherit }\n"
+               "       LABEL := 0-1048575\n"
+       );
 }
 
 static void explain(void)
index cb204af4a25b579952e1652a860aff8d07a0ed39..86dc65caa5e0186de2599fd03c32142cb99ac648 100644 (file)
@@ -22,7 +22,9 @@
 static void print_explain(FILE *f)
 {
        fprintf(f,
-               "Usage: ... ipoib [pkey PKEY] [mode {datagram | connected}][umcast {0|1}]\n"
+               "Usage: ... ipoib [ pkey PKEY ]\n"
+               "                 [ mode {datagram | connected} ]\n"
+               "                 [ umcast {0|1} ]\n"
                "\n"
                "PKEY  := 0x8001-0xffff\n"
        );
index 144c83cbf1f37892640417e135206a3978ea4f5c..b47236d8054de52918947f1bc99cb30f5b5d2d49 100644 (file)
 static void print_explain(FILE *f)
 {
        fprintf(f,
-               "Usage: ... vlan [ protocol VLANPROTO ] id VLANID                [ FLAG-LIST ]\n"
-               "                [ ingress-qos-map QOS-MAP ] [ egress-qos-map QOS-MAP ]\n"
+               "Usage: ... vlan id VLANID\n"
+               "                [ protocol VLANPROTO ]\n"
+               "                [ reorder_hdr { on | off } ]\n"
+               "                [ gvrp { on | off } ]\n"
+               "                [ mvrp { on | off } ]\n"
+               "                [ loose_binding { on | off } ]\n"
+               "                [ ingress-qos-map QOS-MAP ]\n"
+               "                [ egress-qos-map QOS-MAP ]\n"
                "\n"
-               "VLANPROTO: [ 802.1Q / 802.1ad ]\n"
                "VLANID := 0-4095\n"
-               "FLAG-LIST := [ FLAG-LIST ] FLAG\n"
-               "FLAG := [ reorder_hdr { on | off } ] [ gvrp { on | off } ] [ mvrp { on | off } ]\n"
-               "        [ loose_binding { on | off } ]\n"
+               "VLANPROTO: [ 802.1Q / 802.1ad ]\n"
                "QOS-MAP := [ QOS-MAP ] QOS-MAPPING\n"
                "QOS-MAPPING := FROM:TO\n"
        );
index fef7d3af4990fd016f5a2c6a6e12979adcf3f2c3..b4ebb1394e702ea4387244e1fe272cdd64b80e18 100644 (file)
 
 static void print_explain(FILE *f)
 {
-       fprintf(f, "Usage: ... vxlan id VNI [ { group | remote } IP_ADDRESS ] [ local ADDR ]\n");
-       fprintf(f, "                 [ ttl TTL ] [ tos TOS ] [ flowlabel LABEL ] [ dev PHYS_DEV ]\n");
-       fprintf(f, "                 [ dstport PORT ] [ srcport MIN MAX ]\n");
-       fprintf(f, "                 [ [no]learning ] [ [no]proxy ] [ [no]rsc ]\n");
-       fprintf(f, "                 [ [no]l2miss ] [ [no]l3miss ]\n");
-       fprintf(f, "                 [ ageing SECONDS ] [ maxaddress NUMBER ]\n");
-       fprintf(f, "                 [ [no]udpcsum ] [ [no]udp6zerocsumtx ] [ [no]udp6zerocsumrx ]\n");
-       fprintf(f, "                 [ [no]remcsumtx ] [ [no]remcsumrx ]\n");
-       fprintf(f, "                 [ [no]external ] [ gbp ] [ gpe ]\n");
-       fprintf(f, "\n");
-       fprintf(f, "Where: VNI   := 0-16777215\n");
-       fprintf(f, "       ADDR  := { IP_ADDRESS | any }\n");
-       fprintf(f, "       TOS   := { NUMBER | inherit }\n");
-       fprintf(f, "       TTL   := { 1..255 | inherit }\n");
-       fprintf(f, "       LABEL := 0-1048575\n");
+       fprintf(f,
+               "Usage: ... vxlan id VNI\n"
+               "                 [ { group | remote } IP_ADDRESS ]\n"
+               "                 [ local ADDR ]\n"
+               "                 [ ttl TTL ]\n"
+               "                 [ tos TOS ]\n"
+               "                 [ flowlabel LABEL ]\n"
+               "                 [ dev PHYS_DEV ]\n"
+               "                 [ dstport PORT ]\n"
+               "                 [ srcport MIN MAX ]\n"
+               "                 [ [no]learning ]\n"
+               "                 [ [no]proxy ]\n"
+               "                 [ [no]rsc ]\n"
+               "                 [ [no]l2miss ]\n"
+               "                 [ [no]l3miss ]\n"
+               "                 [ ageing SECONDS ]\n"
+               "                 [ maxaddress NUMBER ]\n"
+               "                 [ [no]udpcsum ]\n"
+               "                 [ [no]udp6zerocsumtx ]\n"
+               "                 [ [no]udp6zerocsumrx ]\n"
+               "                 [ [no]remcsumtx ] [ [no]remcsumrx ]\n"
+               "                 [ [no]external ] [ gbp ] [ gpe ]\n"
+               "\n"
+               "Where: VNI   := 0-16777215\n"
+               "       ADDR  := { IP_ADDRESS | any }\n"
+               "       TOS   := { NUMBER | inherit }\n"
+               "       TTL   := { 1..255 | inherit }\n"
+               "       LABEL := 0-1048575\n"
+       );
 }
 
 static void explain(void)
index 3b99e56f40748ee439f0386d78e5b0c741d229af..35d437a15562cbe09acdde1a7faed3089886763c 100644 (file)
 
 static void print_usage(FILE *f)
 {
-       fprintf(f, "Usage: ip link { add | set | change | replace | del } NAME\n");
-       fprintf(f, "          type { gre | gretap } [ remote ADDR ] [ local ADDR ]\n");
-       fprintf(f, "          [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n");
-       fprintf(f, "          [ ttl TTL ] [ tos TOS ] [ [no]pmtudisc ] [ dev PHYS_DEV ]\n");
-       fprintf(f, "          [ noencap ] [ encap { fou | gue | none } ]\n");
-       fprintf(f, "          [ encap-sport PORT ] [ encap-dport PORT ]\n");
-       fprintf(f, "          [ [no]encap-csum ] [ [no]encap-csum6 ] [ [no]encap-remcsum ]\n");
-       fprintf(f, "\n");
-       fprintf(f, "Where: NAME := STRING\n");
-       fprintf(f, "       ADDR := { IP_ADDRESS | any }\n");
-       fprintf(f, "       TOS  := { NUMBER | inherit }\n");
-       fprintf(f, "       TTL  := { 1..255 | inherit }\n");
-       fprintf(f, "       KEY  := { DOTTED_QUAD | NUMBER }\n");
+       fprintf(f,
+               "Usage: ... { gre | gretap } [ remote ADDR ]\n"
+               "                            [ local ADDR ]\n"
+               "                            [ [i|o]seq ]\n"
+               "                            [ [i|o]key KEY ]\n"
+               "                            [ [i|o]csum ]\n"
+               "                            [ ttl TTL ]\n"
+               "                            [ tos TOS ]\n"
+               "                            [ [no]pmtudisc ]\n"
+               "                            [ dev PHYS_DEV ]\n"
+               "                            [ noencap ]\n"
+               "                            [ encap { fou | gue | none } ]\n"
+               "                            [ encap-sport PORT ]\n"
+               "                            [ encap-dport PORT ]\n"
+               "                            [ [no]encap-csum ]\n"
+               "                            [ [no]encap-csum6 ]\n"
+               "                            [ [no]encap-remcsum ]\n"
+               "\n"
+               "Where: ADDR := { IP_ADDRESS | any }\n"
+               "       TOS  := { NUMBER | inherit }\n"
+               "       TTL  := { 1..255 | inherit }\n"
+               "       KEY  := { DOTTED_QUAD | NUMBER }\n"
+       );
 }
 
 static void usage(void) __attribute__((noreturn));
index d00db1f8919dbec834e05e4905b173b65af89f20..a91f635760faa188bc064ead7ce0d058b103c39d 100644 (file)
 
 static void print_usage(FILE *f)
 {
-       fprintf(f, "Usage: ip link { add | set | change | replace | del } NAME\n");
-       fprintf(f, "          type { ip6gre | ip6gretap } [ remote ADDR ] [ local ADDR ]\n");
-       fprintf(f, "          [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n");
-       fprintf(f, "          [ hoplimit TTL ] [ encaplimit ELIM ]\n");
-       fprintf(f, "          [ tclass TCLASS ] [ flowlabel FLOWLABEL ]\n");
-       fprintf(f, "          [ dscp inherit ] [ dev PHYS_DEV ]\n");
-       fprintf(f, "          [ noencap ] [ encap { fou | gue | none } ]\n");
-       fprintf(f, "          [ encap-sport PORT ] [ encap-dport PORT ]\n");
-       fprintf(f, "          [ [no]encap-csum ] [ [no]encap-csum6 ] [ [no]encap-remcsum ]\n");
-       fprintf(f, "\n");
-       fprintf(f, "Where: NAME      := STRING\n");
-       fprintf(f, "       ADDR      := IPV6_ADDRESS\n");
-       fprintf(f, "       TTL       := { 0..255 } (default=%d)\n",
-               DEFAULT_TNL_HOP_LIMIT);
-       fprintf(f, "       KEY       := { DOTTED_QUAD | NUMBER }\n");
-       fprintf(f, "       ELIM      := { none | 0..255 }(default=%d)\n",
-               IPV6_DEFAULT_TNL_ENCAP_LIMIT);
-       fprintf(f, "       TCLASS    := { 0x0..0xff | inherit }\n");
-       fprintf(f, "       FLOWLABEL := { 0x0..0xfffff | inherit }\n");
+       fprintf(f,
+               "Usage: ... { ip6gre | ip6gretap } [ remote ADDR ]\n"
+               "                                  [ local ADDR ]\n"
+               "                                  [ [i|o]seq ]\n"
+               "                                  [ [i|o]key KEY ]\n"
+               "                                  [ [i|o]csum ]\n"
+               "                                  [ hoplimit TTL ]\n"
+               "                                  [ encaplimit ELIM ]\n"
+               "                                  [ tclass TCLASS ]\n"
+               "                                  [ flowlabel FLOWLABEL ]\n"
+               "                                  [ dscp inherit ]\n"
+               "                                  [ dev PHYS_DEV ]\n"
+               "                                  [ noencap ]\n"
+               "                                  [ encap { fou | gue | none } ]\n"
+               "                                  [ encap-sport PORT ]\n"
+               "                                  [ encap-dport PORT ]\n"
+               "                                  [ [no]encap-csum ]\n"
+               "                                  [ [no]encap-csum6 ]\n"
+               "                                  [ [no]encap-remcsum ]\n"
+               "\n"
+               "Where: ADDR      := IPV6_ADDRESS\n"
+               "       TTL       := { 0..255 } (default=%d)\n"
+               "       KEY       := { DOTTED_QUAD | NUMBER }\n"
+               "       ELIM      := { none | 0..255 }(default=%d)\n"
+               "       TCLASS    := { 0x0..0xff | inherit }\n"
+               "       FLOWLABEL := { 0x0..0xfffff | inherit }\n",
+               DEFAULT_TNL_HOP_LIMIT, IPV6_DEFAULT_TNL_ENCAP_LIMIT
+       );
 }
 
 static void usage(void) __attribute__((noreturn));
index 051c89f4fe57c7d649e11397b4f0da50aa8dab7e..6bb968d3c91896bbc9f178c2ddccb0661d68f8d2 100644 (file)
 
 static void print_usage(FILE *f)
 {
-       fprintf(f, "Usage: ip link { add | set | change | replace | del } NAME\n");
-       fprintf(f, "          [ mode { ip6ip6 | ipip6 | any } ]\n");
-       fprintf(f, "          type ip6tnl [ remote ADDR ] [ local ADDR ]\n");
-       fprintf(f, "          [ dev PHYS_DEV ] [ encaplimit ELIM ]\n");
-       fprintf(f, "          [ hoplimit HLIM ] [ tclass TCLASS ] [ flowlabel FLOWLABEL ]\n");
-       fprintf(f, "          [ dscp inherit ] [ fwmark inherit ]\n");
-       fprintf(f, "          [ noencap ] [ encap { fou | gue | none } ]\n");
-       fprintf(f, "          [ encap-sport PORT ] [ encap-dport PORT ]\n");
-       fprintf(f, "          [ [no]encap-csum ] [ [no]encap-csum6 ] [ [no]encap-remcsum ]\n");
-       fprintf(f, "          [ external ]\n");
-       fprintf(f, "\n");
-       fprintf(f, "Where: NAME      := STRING\n");
-       fprintf(f, "       ADDR      := IPV6_ADDRESS\n");
-       fprintf(f, "       ELIM      := { none | 0..255 }(default=%d)\n",
-               IPV6_DEFAULT_TNL_ENCAP_LIMIT);
-       fprintf(f, "       HLIM      := 0..255 (default=%d)\n",
-               DEFAULT_TNL_HOP_LIMIT);
-       fprintf(f, "       TCLASS    := { 0x0..0xff | inherit }\n");
-       fprintf(f, "       FLOWLABEL := { 0x0..0xfffff | inherit }\n");
+       fprintf(f,
+               "Usage: ... ip6tnl [ mode { ip6ip6 | ipip6 | any } ]\n"
+               "                  [ remote ADDR ]\n"
+               "                  [ local ADDR ]\n"
+               "                  [ dev PHYS_DEV ]\n"
+               "                  [ encaplimit ELIM ]\n"
+               "                  [ hoplimit HLIM ]\n"
+               "                  [ tclass TCLASS ]\n"
+               "                  [ flowlabel FLOWLABEL ]\n"
+               "                  [ dscp inherit ]\n"
+               "                  [ fwmark inherit ]\n"
+               "                  [ noencap ]\n"
+               "                  [ encap { fou | gue | none } ]\n"
+               "                  [ encap-sport PORT ]\n"
+               "                  [ encap-dport PORT ]\n"
+               "                  [ [no]encap-csum ]\n"
+               "                  [ [no]encap-csum6 ]\n"
+               "                  [ [no]encap-remcsum ]\n"
+               "                  [ external ]\n"
+               "\n"
+               "Where: ADDR      := IPV6_ADDRESS\n"
+               "       ELIM      := { none | 0..255 }(default=%d)\n"
+               "       HLIM      := 0..255 (default=%d)\n"
+               "       TCLASS    := { 0x0..0xff | inherit }\n"
+               "       FLOWLABEL := { 0x0..0xfffff | inherit }\n",
+               IPV6_DEFAULT_TNL_ENCAP_LIMIT, DEFAULT_TNL_HOP_LIMIT
+       );
 }
 
 static void usage(void) __attribute__((noreturn));
index a96b1eb4c94ce0039dcaf5d079967fbfe1cafa34..f180b921e471074a6d889ae5e62c9b2221350412 100644 (file)
 
 static void print_usage(FILE *f, int sit)
 {
-       fprintf(f, "Usage: ip link { add | set | change | replace | del } NAME\n");
-       fprintf(f, "          type { ipip | sit } [ remote ADDR ] [ local ADDR ]\n");
-       fprintf(f, "          [ ttl TTL ] [ tos TOS ] [ [no]pmtudisc ] [ dev PHYS_DEV ]\n");
-       fprintf(f, "          [ 6rd-prefix ADDR ] [ 6rd-relay_prefix ADDR ] [ 6rd-reset ]\n");
-       fprintf(f, "          [ noencap ] [ encap { fou | gue | none } ]\n");
-       fprintf(f, "          [ encap-sport PORT ] [ encap-dport PORT ]\n");
-       fprintf(f, "          [ [no]encap-csum ] [ [no]encap-csum6 ] [ [no]encap-remcsum ]\n");
+       const char *type = sit ? "sit " : "ipip";
+
+       fprintf(f,
+               "Usage: ... %s [ remote ADDR ]\n"
+               "                [ local ADDR ]\n"
+               "                [ ttl TTL ]\n"
+               "                [ tos TOS ]\n"
+               "                [ [no]pmtudisc ]\n"
+               "                [ dev PHYS_DEV ]\n"
+               "                [ 6rd-prefix ADDR ]\n"
+               "                [ 6rd-relay_prefix ADDR ]\n"
+               "                [ 6rd-reset ]\n"
+               "                [ noencap ]\n"
+               "                [ encap { fou | gue | none } ]\n"
+               "                [ encap-sport PORT ]\n"
+               "                [ encap-dport PORT ]\n"
+               "                [ [no]encap-csum ]\n"
+               "                [ [no]encap-csum6 ]\n"
+               "                [ [no]encap-remcsum ]\n",
+               type
+       );
        if (sit) {
-               fprintf(f, "          [ mode { ip6ip | ipip | any } ]\n");
-               fprintf(f, "          [ isatap ]\n");
+               fprintf(f,
+                       "                [ mode { ip6ip | ipip | any } ]\n"
+                       "                [ isatap ]\n");
        }
-       fprintf(f, "          [ external ]\n");
+       fprintf(f, "                [ external ]\n");
        fprintf(f, "\n");
-       fprintf(f, "Where: NAME := STRING\n");
-       fprintf(f, "       ADDR := { IP_ADDRESS | any }\n");
+       fprintf(f, "Where: ADDR := { IP_ADDRESS | any }\n");
        fprintf(f, "       TOS  := { NUMBER | inherit }\n");
        fprintf(f, "       TTL  := { 1..255 | inherit }\n");
 }
index 93bbce44423dad4fd25320d35182601333aa4d8d..95bc23e928972cf439665a138e879b13b9405f93 100644 (file)
 
 static void print_usage(FILE *f)
 {
-       fprintf(f, "Usage: ip link { add | set | change | replace | del } NAME\n");
-       fprintf(f, "          type { vti } [ remote ADDR ] [ local ADDR ]\n");
-       fprintf(f, "          [ [i|o]key KEY ]\n");
-       fprintf(f, "          [ dev PHYS_DEV ]\n");
-       fprintf(f, "\n");
-       fprintf(f, "Where: NAME := STRING\n");
-       fprintf(f, "       ADDR := { IP_ADDRESS }\n");
-       fprintf(f, "       KEY  := { DOTTED_QUAD | NUMBER }\n");
+       fprintf(f,
+               "Usage: ... vti [ remote ADDR ]\n"
+               "               [ local ADDR ]\n"
+               "               [ [i|o]key KEY ]\n"
+               "               [ dev PHYS_DEV ]\n"
+               "\n"
+               "Where: ADDR := { IP_ADDRESS }\n"
+               "       KEY  := { DOTTED_QUAD | NUMBER }\n"
+       );
 }
 
 static void usage(void) __attribute__((noreturn));