Commit d1716d5a authored by Christian Hopps's avatar Christian Hopps Committed by Steffen Klassert
Browse files

xfrm: add generic iptfs defines and functionality



Define `XFRM_MODE_IPTFS` and `IPSEC_MODE_IPTFS` constants, and add these to
switch case and conditionals adjacent with the existing TUNNEL modes.

Signed-off-by: default avatarChristian Hopps <chopps@labn.net>
Tested-by: default avatarAntony Antony <antony.antony@secunet.com>
Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
parent 7ac64f45
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@
#define XFRM_PROTO_COMP		108
#define XFRM_PROTO_IPIP		4
#define XFRM_PROTO_IPV6		41
#define XFRM_PROTO_IPTFS	IPPROTO_AGGFRAG
#define XFRM_PROTO_ROUTING	IPPROTO_ROUTING
#define XFRM_PROTO_DSTOPTS	IPPROTO_DSTOPTS

+2 −1
Original line number Diff line number Diff line
@@ -14,7 +14,8 @@ enum {
	IPSEC_MODE_ANY		= 0,	/* We do not support this for SA */
	IPSEC_MODE_TRANSPORT	= 1,
	IPSEC_MODE_TUNNEL	= 2,
	IPSEC_MODE_BEET         = 3
	IPSEC_MODE_BEET         = 3,
	IPSEC_MODE_IPTFS        = 4
};

enum {
+2 −0
Original line number Diff line number Diff line
@@ -339,6 +339,8 @@ enum
	LINUX_MIB_XFRMACQUIREERROR,		/* XfrmAcquireError */
	LINUX_MIB_XFRMOUTSTATEDIRERROR,		/* XfrmOutStateDirError */
	LINUX_MIB_XFRMINSTATEDIRERROR,		/* XfrmInStateDirError */
	LINUX_MIB_XFRMINIPTFSERROR,		/* XfrmInIptfsError */
	LINUX_MIB_XFRMOUTNOQSPACE,		/* XfrmOutNoQueueSpace */
	__LINUX_MIB_XFRMMAX
};

+2 −1
Original line number Diff line number Diff line
@@ -816,7 +816,8 @@ int esp_input_done2(struct sk_buff *skb, int err)
	}

	skb_pull_rcsum(skb, hlen);
	if (x->props.mode == XFRM_MODE_TUNNEL)
	if (x->props.mode == XFRM_MODE_TUNNEL ||
	    x->props.mode == XFRM_MODE_IPTFS)
		skb_reset_transport_header(skb);
	else
		skb_set_transport_header(skb, -ihl);
+2 −1
Original line number Diff line number Diff line
@@ -859,7 +859,8 @@ int esp6_input_done2(struct sk_buff *skb, int err)
	skb_postpull_rcsum(skb, skb_network_header(skb),
			   skb_network_header_len(skb));
	skb_pull_rcsum(skb, hlen);
	if (x->props.mode == XFRM_MODE_TUNNEL)
	if (x->props.mode == XFRM_MODE_TUNNEL ||
	    x->props.mode == XFRM_MODE_IPTFS)
		skb_reset_transport_header(skb);
	else
		skb_set_transport_header(skb, -hdr_len);
Loading