aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2007-12-11 04:53:43 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 17:57:05 -0500
commit005011211f559113686938c2c252b8ee1ab855b5 (patch)
treea126bc8cbbfa9a263e06cc517fe3c1ae6f31af59
parent385ac2e3f226c09cb71733df1899658e33a7850f (diff)
[IPSEC]: Add xfrm_input_state helper
This patch adds the xfrm_input_state helper function which returns the current xfrm state being processed on the input path given an sk_buff. This is currently only used by xfrm_input but will be used by ESP upon asynchronous resumption. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--include/net/xfrm.h5
-rw-r--r--net/xfrm/xfrm_input.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/include/net/xfrm.h b/include/net/xfrm.h
index 503d0d294a4c..fe881b6e2bd0 100644
--- a/include/net/xfrm.h
+++ b/include/net/xfrm.h
@@ -1317,4 +1317,9 @@ static inline void xfrm_states_delete(struct xfrm_state **states, int n)
1317} 1317}
1318#endif 1318#endif
1319 1319
1320static inline struct xfrm_state *xfrm_input_state(struct sk_buff *skb)
1321{
1322 return skb->sp->xvec[skb->sp->len - 1];
1323}
1324
1320#endif /* _NET_XFRM_H */ 1325#endif /* _NET_XFRM_H */
diff --git a/net/xfrm/xfrm_input.c b/net/xfrm/xfrm_input.c
index 8b2b1b59133e..8624cbdb2a1e 100644
--- a/net/xfrm/xfrm_input.c
+++ b/net/xfrm/xfrm_input.c
@@ -109,7 +109,7 @@ int xfrm_input(struct sk_buff *skb, int nexthdr, __be32 spi, int encap_type)
109 /* A negative encap_type indicates async resumption. */ 109 /* A negative encap_type indicates async resumption. */
110 if (encap_type < 0) { 110 if (encap_type < 0) {
111 async = 1; 111 async = 1;
112 x = skb->sp->xvec[skb->sp->len - 1]; 112 x = xfrm_input_state(skb);
113 seq = XFRM_SKB_CB(skb)->seq; 113 seq = XFRM_SKB_CB(skb)->seq;
114 goto resume; 114 goto resume;
115 } 115 }