mirror of
https://git.proxmox.com/git/mirror_iproute2
synced 2025-08-13 16:46:06 +00:00
gre: add support for collect metadata flag
This patch add support for IFLA_GRE_COLLECT_METADATA via the 'external' keyword to the gre link. Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
e79c327edd
commit
926b39e1fe
@ -74,6 +74,7 @@ static int gre_parse_opt(struct link_util *lu, int argc, char **argv,
|
||||
__u16 encapflags = 0;
|
||||
__u16 encapsport = 0;
|
||||
__u16 encapdport = 0;
|
||||
__u8 metadata = 0;
|
||||
|
||||
if (!(n->nlmsg_flags & NLM_F_CREATE)) {
|
||||
memset(&req, 0, sizeof(req));
|
||||
@ -148,6 +149,9 @@ get_failed:
|
||||
encapsport = rta_getattr_u16(greinfo[IFLA_GRE_ENCAP_SPORT]);
|
||||
if (greinfo[IFLA_GRE_ENCAP_DPORT])
|
||||
encapdport = rta_getattr_u16(greinfo[IFLA_GRE_ENCAP_DPORT]);
|
||||
|
||||
if (greinfo[IFLA_GRE_COLLECT_METADATA])
|
||||
metadata = 1;
|
||||
}
|
||||
|
||||
while (argc > 0) {
|
||||
@ -291,6 +295,8 @@ get_failed:
|
||||
encapflags |= TUNNEL_ENCAP_FLAG_REMCSUM;
|
||||
} else if (strcmp(*argv, "noencap-remcsum") == 0) {
|
||||
encapflags |= ~TUNNEL_ENCAP_FLAG_REMCSUM;
|
||||
} else if (strcmp(*argv, "external") == 0) {
|
||||
metadata = 1;
|
||||
} else
|
||||
usage();
|
||||
argc--; argv++;
|
||||
@ -325,6 +331,8 @@ get_failed:
|
||||
addattr16(n, 1024, IFLA_GRE_ENCAP_FLAGS, encapflags);
|
||||
addattr16(n, 1024, IFLA_GRE_ENCAP_SPORT, htons(encapsport));
|
||||
addattr16(n, 1024, IFLA_GRE_ENCAP_DPORT, htons(encapdport));
|
||||
if (metadata)
|
||||
addattr_l(n, 1024, IFLA_GRE_COLLECT_METADATA, NULL, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -413,6 +421,9 @@ static void gre_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
|
||||
if (oflags & GRE_CSUM)
|
||||
fputs("ocsum ", f);
|
||||
|
||||
if (tb[IFLA_GRE_COLLECT_METADATA])
|
||||
fputs("external ", f);
|
||||
|
||||
if (tb[IFLA_GRE_ENCAP_TYPE] &&
|
||||
*(__u16 *)RTA_DATA(tb[IFLA_GRE_ENCAP_TYPE]) != TUNNEL_ENCAP_NONE) {
|
||||
__u16 type = rta_getattr_u16(tb[IFLA_GRE_ENCAP_TYPE]);
|
||||
|
Loading…
Reference in New Issue
Block a user