-Index: linux-2.6.23.17/include/net/xfrmudp.h
-===================================================================
--- /dev/null
-+++ linux-2.6.23.17/include/net/xfrmudp.h
++++ b/include/net/xfrmudp.h
@@ -0,0 +1,10 @@
+/*
+ * pointer to function for type that xfrm4_input wants, to permit
+extern int udp4_register_esp_rcvencap(xfrm4_rcv_encap_t func
+ , xfrm4_rcv_encap_t *oldfunc);
+extern int udp4_unregister_esp_rcvencap(xfrm4_rcv_encap_t func);
-Index: linux-2.6.23.17/net/ipv4/Kconfig
-===================================================================
---- linux-2.6.23.17.orig/net/ipv4/Kconfig
-+++ linux-2.6.23.17/net/ipv4/Kconfig
-@@ -224,6 +224,12 @@ config NET_IPGRE_BROADCAST
+--- a/net/ipv4/Kconfig
++++ b/net/ipv4/Kconfig
+@@ -224,6 +224,12 @@
Network), but can be distributed all over the Internet. If you want
to do that, say Y here and to "IP multicast routing" below.
config IP_MROUTE
bool "IP: multicast routing"
depends on IP_MULTICAST
-Index: linux-2.6.23.17/net/ipv4/xfrm4_input.c
-===================================================================
---- linux-2.6.23.17.orig/net/ipv4/xfrm4_input.c
-+++ linux-2.6.23.17/net/ipv4/xfrm4_input.c
+--- a/net/ipv4/xfrm4_input.c
++++ b/net/ipv4/xfrm4_input.c
@@ -15,6 +15,7 @@
#include <linux/netfilter_ipv4.h>
#include <net/ip.h>
static int xfrm4_parse_spi(struct sk_buff *skb, u8 nexthdr, __be32 *spi, __be32 *seq)
{
-@@ -161,6 +162,29 @@ drop:
+@@ -161,6 +162,29 @@
return 0;
}
/* If it's a keepalive packet, then just eat it.
* If it's an encapsulated packet, then pass it to the
* IPsec xfrm input.
-@@ -251,7 +275,13 @@ int xfrm4_udp_encap_rcv(struct sock *sk,
+@@ -251,7 +275,13 @@
iph->protocol = IPPROTO_ESP;
/* process ESP */
return ret;
drop:
-@@ -265,3 +295,8 @@ int xfrm4_rcv(struct sk_buff *skb)
+@@ -265,3 +295,8 @@
}
EXPORT_SYMBOL(xfrm4_rcv);