]> rtime.felk.cvut.cz Git - lisovros/iproute2_canprio.git/commitdiff
ip xfrm state: parse and print "icmp" and "af-unspec" flags
authorAlex Badea <abadea@ixiacom.com>
Mon, 11 Jan 2010 15:23:41 +0000 (17:23 +0200)
committerStephen Hemminger <stephen.hemminger@vyatta.com>
Thu, 21 Jan 2010 18:10:34 +0000 (10:10 -0800)
Convert to/from XFRM_STATE_ICMP and XFRM_STATE_AF_UNSPEC state flags.

Signed-off-by: Alex Badea <abadea@ixiacom.com>
ip/ipxfrm.c
ip/xfrm_state.c

index 18250de82292486fd2a96c0024c07875690978fa..7dc36f3616747b592d19489937d32b3804d3ce08 100644 (file)
@@ -780,6 +780,8 @@ void xfrm_state_info_print(struct xfrm_usersa_info *xsinfo,
                XFRM_FLAG_PRINT(fp, flags, XFRM_STATE_DECAP_DSCP, "decap-dscp");
                XFRM_FLAG_PRINT(fp, flags, XFRM_STATE_NOPMTUDISC, "nopmtudisc");
                XFRM_FLAG_PRINT(fp, flags, XFRM_STATE_WILDRECV, "wildrecv");
+               XFRM_FLAG_PRINT(fp, flags, XFRM_STATE_ICMP, "icmp");
+               XFRM_FLAG_PRINT(fp, flags, XFRM_STATE_AF_UNSPEC, "af-unspec");
                if (flags)
                        fprintf(fp, "%x", flags);
        }
index b1e3f220fcf8cbb29e8aa83b9a1d0dcd674fb164..32238ab7a5dec7130403e4779dbf558ddd78551e 100644 (file)
@@ -83,7 +83,7 @@ static void usage(void)
        //fprintf(stderr, "REQID - number(default=0)\n");
 
        fprintf(stderr, "FLAG-LIST := [ FLAG-LIST ] FLAG\n");
-       fprintf(stderr, "FLAG := [ noecn | decap-dscp | nopmtudisc | wildrecv ]\n");
+       fprintf(stderr, "FLAG := [ noecn | decap-dscp | nopmtudisc | wildrecv | icmp | af-unspec ]\n");
 
         fprintf(stderr, "ENCAP := ENCAP-TYPE SPORT DPORT OADDR\n");
         fprintf(stderr, "ENCAP-TYPE := espinudp | espinudp-nonike\n");
@@ -210,6 +210,10 @@ static int xfrm_state_flag_parse(__u8 *flags, int *argcp, char ***argvp)
                                *flags |= XFRM_STATE_NOPMTUDISC;
                        else if (strcmp(*argv, "wildrecv") == 0)
                                *flags |= XFRM_STATE_WILDRECV;
+                       else if (strcmp(*argv, "icmp") == 0)
+                               *flags |= XFRM_STATE_ICMP;
+                       else if (strcmp(*argv, "af-unspec") == 0)
+                               *flags |= XFRM_STATE_AF_UNSPEC;
                        else {
                                PREV_ARG(); /* back track */
                                break;