Patchwork [iproute2] ip xfrm state: parse and print "icmp" and "af-unspec" flags

login
register
mail settings
Submitter Alex Badea
Date Jan. 11, 2010, 3:23 p.m.
Message ID <1263223421-14013-1-git-send-email-abadea@ixiacom.com>
Download mbox | patch
Permalink /patch/42627/
State Accepted
Delegated to: stephen hemminger
Headers show

Comments

Alex Badea - Jan. 11, 2010, 3:23 p.m.
Convert to/from XFRM_STATE_ICMP and XFRM_STATE_AF_UNSPEC state flags.

Signed-off-by: Alex Badea <abadea@ixiacom.com>
---
 ip/ipxfrm.c     |    2 ++
 ip/xfrm_state.c |    6 +++++-
 2 files changed, 7 insertions(+), 1 deletions(-)
stephen hemminger - Jan. 21, 2010, 6:10 p.m.
On Mon, 11 Jan 2010 17:23:41 +0200
Alex Badea <abadea@ixiacom.com> wrote:

> Convert to/from XFRM_STATE_ICMP and XFRM_STATE_AF_UNSPEC state flags.
> 
> Signed-off-by: Alex Badea <abadea@ixiacom.com>
> ---
>  ip/ipxfrm.c     |    2 ++
>  ip/xfrm_state.c |    6 +++++-
>  2 files changed, 7 insertions(+), 1 deletions(-)
> 
> diff --git a/ip/ipxfrm.c b/ip/ipxfrm.c
> index 18250de..7dc36f3 100644
> --- a/ip/ipxfrm.c
> +++ b/ip/ipxfrm.c
> @@ -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);
>  	}
> diff --git a/ip/xfrm_state.c b/ip/xfrm_state.c
> index b1e3f22..32238ab 100644
> --- a/ip/xfrm_state.c
> +++ b/ip/xfrm_state.c
> @@ -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;


applied
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/ip/ipxfrm.c b/ip/ipxfrm.c
index 18250de..7dc36f3 100644
--- a/ip/ipxfrm.c
+++ b/ip/ipxfrm.c
@@ -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);
 	}
diff --git a/ip/xfrm_state.c b/ip/xfrm_state.c
index b1e3f22..32238ab 100644
--- a/ip/xfrm_state.c
+++ b/ip/xfrm_state.c
@@ -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;