]> git.proxmox.com Git - mirror_iproute2.git/commitdiff
ip xfrm: support printing XFRMA_SET_MARK_MASK attribute in states
authorAntony Antony <antony@phenome.org>
Fri, 28 Aug 2020 14:59:07 +0000 (16:59 +0200)
committerDavid Ahern <dsahern@gmail.com>
Wed, 2 Sep 2020 01:49:29 +0000 (19:49 -0600)
The XFRMA_SET_MARK_MASK attribute is set in states (4.19+).
It is the mask of XFRMA_SET_MARK(a.k.a. XFRMA_OUTPUT_MARK in 4.18)

sample output: note the output-mark mask
ip xfrm state
src 192.1.2.23 dst 192.1.3.33
proto esp spi 0xSPISPI reqid REQID mode tunnel
replay-window 32 flag af-unspec
output-mark 0x3/0xffffff
aead rfc4106(gcm(aes)) 0xENCAUTHKEY 128
if_id 0x1

Signed-off-by: Antony Antony <antony@phenome.org>
Signed-off-by: David Ahern <dsahern@gmail.com>
ip/ipxfrm.c

index cac8ba25055b028bd84a130c8f8b240a0c034b0a..e4a72bd0677871018d8586173657710026ed7178 100644 (file)
@@ -649,6 +649,10 @@ static void xfrm_output_mark_print(struct rtattr *tb[], FILE *fp)
        __u32 output_mark = rta_getattr_u32(tb[XFRMA_OUTPUT_MARK]);
 
        fprintf(fp, "output-mark 0x%x", output_mark);
+       if (tb[XFRMA_SET_MARK_MASK]) {
+               __u32 mask = rta_getattr_u32(tb[XFRMA_SET_MARK_MASK]);
+               fprintf(fp, "/0x%x", mask);
+       }
 }
 
 int xfrm_parse_mark(struct xfrm_mark *mark, int *argcp, char ***argvp)