aboutsummaryrefslogtreecommitdiffstats
path: root/net/xfrm/xfrm_input.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/xfrm/xfrm_input.c')
-rw-r--r--net/xfrm/xfrm_input.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/net/xfrm/xfrm_input.c b/net/xfrm/xfrm_input.c
index cb97fda1b6df..4c803f7e74e5 100644
--- a/net/xfrm/xfrm_input.c
+++ b/net/xfrm/xfrm_input.c
@@ -81,6 +81,19 @@ int xfrm_parse_spi(struct sk_buff *skb, u8 nexthdr, __be32 *spi, __be32 *seq)
81} 81}
82EXPORT_SYMBOL(xfrm_parse_spi); 82EXPORT_SYMBOL(xfrm_parse_spi);
83 83
84int xfrm_prepare_input(struct xfrm_state *x, struct sk_buff *skb)
85{
86 int err;
87
88 err = x->outer_mode->afinfo->extract_input(x, skb);
89 if (err)
90 return err;
91
92 skb->protocol = x->inner_mode->afinfo->eth_proto;
93 return x->inner_mode->input2(x, skb);
94}
95EXPORT_SYMBOL(xfrm_prepare_input);
96
84void __init xfrm_input_init(void) 97void __init xfrm_input_init(void)
85{ 98{
86 secpath_cachep = kmem_cache_create("secpath_cache", 99 secpath_cachep = kmem_cache_create("secpath_cache",