mirror of
https://git.proxmox.com/git/mirror_iproute2
synced 2025-11-03 10:37:32 +00:00
gre/gre6: Unify gre_print_help()
Reduce diff lines between gre and gre6 help printing code. Use @struct link_util ->id field to print correct link help: all callers now pass this data structure to gre_print_help(). Get rid of custom print_usage() and usage() functions and use gre_print_help() directly, return from function on "... type <help|garbage>" instead of exit(2). Signed-off-by: Serhey Popovych <serhe.popovych@gmail.com> Signed-off-by: David Ahern <dsahern@gmail.com>
This commit is contained in:
parent
4aa552eac1
commit
ae91205c4d
@ -23,34 +23,38 @@
|
||||
#include "ip_common.h"
|
||||
#include "tunnel.h"
|
||||
|
||||
static void print_usage(FILE *f)
|
||||
static void gre_print_help(struct link_util *lu, int argc, char **argv, FILE *f)
|
||||
{
|
||||
fprintf(f,
|
||||
"Usage: ... { gre | gretap | erspan } [ 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"
|
||||
" [ [no]ignore-df ]\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"
|
||||
" [ external ]\n"
|
||||
" [ fwmark MARK ]\n"
|
||||
" [ erspan_ver version ]\n"
|
||||
" [ erspan IDX ]\n"
|
||||
" [ erspan_dir { ingress | egress } ]\n"
|
||||
" [ erspan_hwid hwid ]\n"
|
||||
" [ external ]\n"
|
||||
"Usage: ... %-9s [ remote ADDR ]\n",
|
||||
lu->id
|
||||
);
|
||||
fprintf(f,
|
||||
" [ 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"
|
||||
" [ [no]ignore-df ]\n"
|
||||
" [ dev PHYS_DEV ]\n"
|
||||
" [ fwmark MARK ]\n"
|
||||
" [ external ]\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"
|
||||
" [ erspan_ver version ]\n"
|
||||
" [ erspan IDX ]\n"
|
||||
" [ erspan_dir { ingress | egress } ]\n"
|
||||
" [ erspan_hwid hwid ]\n"
|
||||
"\n"
|
||||
);
|
||||
fprintf(f,
|
||||
"Where: ADDR := { IP_ADDRESS | any }\n"
|
||||
" TOS := { NUMBER | inherit }\n"
|
||||
" TTL := { 1..255 | inherit }\n"
|
||||
@ -59,13 +63,6 @@ static void print_usage(FILE *f)
|
||||
);
|
||||
}
|
||||
|
||||
static void usage(void) __attribute__((noreturn));
|
||||
static void usage(void)
|
||||
{
|
||||
print_usage(stderr);
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
static int gre_parse_opt(struct link_util *lu, int argc, char **argv,
|
||||
struct nlmsghdr *n)
|
||||
{
|
||||
@ -336,8 +333,10 @@ get_failed:
|
||||
NEXT_ARG();
|
||||
if (get_u16(&erspan_hwid, *argv, 0))
|
||||
invarg("invalid erspan hwid\n", *argv);
|
||||
} else
|
||||
usage();
|
||||
} else {
|
||||
gre_print_help(lu, argc, argv, stderr);
|
||||
return -1;
|
||||
}
|
||||
argc--; argv++;
|
||||
}
|
||||
|
||||
@ -517,12 +516,6 @@ static void gre_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
|
||||
IFLA_GRE_ENCAP_DPORT);
|
||||
}
|
||||
|
||||
static void gre_print_help(struct link_util *lu, int argc, char **argv,
|
||||
FILE *f)
|
||||
{
|
||||
print_usage(f);
|
||||
}
|
||||
|
||||
struct link_util gre_link_util = {
|
||||
.id = "gre",
|
||||
.maxattr = IFLA_GRE_MAX,
|
||||
|
||||
@ -30,34 +30,39 @@
|
||||
|
||||
#define DEFAULT_TNL_HOP_LIMIT (64)
|
||||
|
||||
static void print_usage(FILE *f)
|
||||
static void gre_print_help(struct link_util *lu, int argc, char **argv, FILE *f)
|
||||
{
|
||||
fprintf(f,
|
||||
"Usage: ... { ip6gre | ip6gretap | ip6erspan} [ 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"
|
||||
" [ fwmark MARK ]\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"
|
||||
" [ erspan_ver version ]\n"
|
||||
" [ erspan IDX ]\n"
|
||||
" [ erspan_dir { ingress | egress } ]\n"
|
||||
" [ erspan_hwid hwid ]\n"
|
||||
" [ external ]\n"
|
||||
"Usage: ... %-9s [ remote ADDR ]\n",
|
||||
lu->id
|
||||
);
|
||||
fprintf(f,
|
||||
" [ 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"
|
||||
" [ fwmark MARK ]\n"
|
||||
" [ external ]\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"
|
||||
" [ erspan_ver version ]\n"
|
||||
" [ erspan IDX ]\n"
|
||||
" [ erspan_dir { ingress | egress } ]\n"
|
||||
" [ erspan_hwid hwid ]\n"
|
||||
"\n"
|
||||
);
|
||||
fprintf(f,
|
||||
"Where: ADDR := IPV6_ADDRESS\n"
|
||||
" TTL := { 0..255 } (default=%d)\n"
|
||||
" KEY := { DOTTED_QUAD | NUMBER }\n"
|
||||
@ -69,13 +74,6 @@ static void print_usage(FILE *f)
|
||||
);
|
||||
}
|
||||
|
||||
static void usage(void) __attribute__((noreturn));
|
||||
static void usage(void)
|
||||
{
|
||||
print_usage(stderr);
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
static int gre_parse_opt(struct link_util *lu, int argc, char **argv,
|
||||
struct nlmsghdr *n)
|
||||
{
|
||||
@ -384,8 +382,10 @@ get_failed:
|
||||
NEXT_ARG();
|
||||
if (get_u16(&erspan_hwid, *argv, 0))
|
||||
invarg("invalid erspan hwid\n", *argv);
|
||||
} else
|
||||
usage();
|
||||
} else {
|
||||
gre_print_help(lu, argc, argv, stderr);
|
||||
return -1;
|
||||
}
|
||||
argc--; argv++;
|
||||
}
|
||||
|
||||
@ -584,12 +584,6 @@ static void gre_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
|
||||
IFLA_GRE_ENCAP_DPORT);
|
||||
}
|
||||
|
||||
static void gre_print_help(struct link_util *lu, int argc, char **argv,
|
||||
FILE *f)
|
||||
{
|
||||
print_usage(f);
|
||||
}
|
||||
|
||||
struct link_util ip6gre_link_util = {
|
||||
.id = "ip6gre",
|
||||
.maxattr = IFLA_GRE_MAX,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user