]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
ip-xfrm: add support for oseq-may-wrap extra flag
authorPetr Vaněk <pv@excello.cz>
Fri, 31 Jul 2020 07:12:59 +0000 (09:12 +0200)
committerDavid Ahern <dsahern@kernel.org>
Mon, 3 Aug 2020 14:57:25 +0000 (14:57 +0000)
This flag allows to create SA where sequence number can cycle in
outbound packets if set.

Signed-off-by: Petr Vaněk <pv@excello.cz>
Signed-off-by: David Ahern <dsahern@kernel.org>
ip/ipxfrm.c
ip/xfrm_state.c
man/man8/ip-xfrm.8

index fec206abc1f03c40e21e2482a52d987535316a46..cac8ba25055b028bd84a130c8f8b240a0c034b0a 100644 (file)
@@ -953,6 +953,9 @@ void xfrm_state_info_print(struct xfrm_usersa_info *xsinfo,
                XFRM_FLAG_PRINT(fp, extra_flags,
                                XFRM_SA_XFLAG_DONT_ENCAP_DSCP,
                                "dont-encap-dscp");
+               XFRM_FLAG_PRINT(fp, extra_flags,
+                               XFRM_SA_XFLAG_OSEQ_MAY_WRAP,
+                               "oseq-may-wrap");
                if (extra_flags)
                        fprintf(fp, "%x", extra_flags);
        }
index f4bf3356bb01f67dc0f92f46a6db83c99116bab6..ddf784cad54b0b7a7a34f7a6d947347583c0df35 100644 (file)
@@ -104,7 +104,7 @@ static void usage(void)
                "FLAG-LIST := [ FLAG-LIST ] FLAG\n"
                "FLAG := noecn | decap-dscp | nopmtudisc | wildrecv | icmp | af-unspec | align4 | esn\n"
                "EXTRA-FLAG-LIST := [ EXTRA-FLAG-LIST ] EXTRA-FLAG\n"
-               "EXTRA-FLAG := dont-encap-dscp\n"
+               "EXTRA-FLAG := dont-encap-dscp | oseq-may-wrap\n"
                "SELECTOR := [ src ADDR[/PLEN] ] [ dst ADDR[/PLEN] ] [ dev DEV ] [ UPSPEC ]\n"
                "UPSPEC := proto { { tcp | udp | sctp | dccp } [ sport PORT ] [ dport PORT ] |\n"
                "                  { icmp | ipv6-icmp | mobility-header } [ type NUMBER ] [ code NUMBER ] |\n"
@@ -253,6 +253,8 @@ static int xfrm_state_extra_flag_parse(__u32 *extra_flags, int *argcp, char ***a
                while (1) {
                        if (strcmp(*argv, "dont-encap-dscp") == 0)
                                *extra_flags |= XFRM_SA_XFLAG_DONT_ENCAP_DSCP;
+                       else if (strcmp(*argv, "oseq-may-wrap") == 0)
+                               *extra_flags |= XFRM_SA_XFLAG_OSEQ_MAY_WRAP;
                        else {
                                PREV_ARG(); /* back track */
                                break;
index aa28db4997d3744acc05decb2f54bfe03b2d0448..4fa31651175529bf319d18898db0567533c273ea 100644 (file)
@@ -217,7 +217,7 @@ ip-xfrm \- transform configuration
 
 .ti -8
 .IR EXTRA-FLAG " := "
-.B dont-encap-dscp
+.BR dont-encap-dscp " | " oseq-may-wrap
 
 .ti -8
 .BR "ip xfrm policy" " { " add " | " update " }"