<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7036.0">
<TITLE>KLIPS and kernel 2.6.20</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P><FONT SIZE=2 FACE="Arial">Hi,</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">There are a number of issues when trying to compile a 2.6.20 kernel with KLIPS (Openswan 2.4.6).&nbsp; I was able to put in a couple of ugly hacks to get the kernel to build, and ipsec works, but I know a couple of the changes I made aren't the &quot;right&quot; solution.</FONT></P>

<P><FONT SIZE=2 FACE="Arial">Some of the issues are mundane (like changing include entries from config.h to autoconf.h), however there have been some changes in net/ipv4/udp.c, net/socket.c and include/linux/net.h that need to be addressed.&nbsp; Here's a brief overview of the issues,&nbsp; where possible I included some information regarding the nature of the issue.</FONT></P>

<P><FONT SIZE=2 FACE="Arial">&lt;&lt; net/udp.c issues &gt;&gt;</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">The changes to net/ipv4/udp.c result in several hunks of the openswan-2.4.6.kernel-2.6-natt.patch file failing.</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">[root@dev linux-2.6.20-klips-3]# patch -p1 &lt;patches/openswan-2.4.6.kernel-2.6-natt.patch</FONT>

<BR><FONT SIZE=2 FACE="Arial">patching file include/net/xfrmudp.h</FONT>

<BR><FONT SIZE=2 FACE="Arial">patching file net/ipv4/Kconfig</FONT>

<BR><FONT SIZE=2 FACE="Arial">Hunk #1 succeeded at 351 with fuzz 1.</FONT>

<BR><FONT SIZE=2 FACE="Arial">patching file net/ipv4/udp.c</FONT>

<BR><FONT SIZE=2 FACE="Arial">Hunk #1 FAILED at 108.</FONT>

<BR><FONT SIZE=2 FACE="Arial">Hunk #2 succeeded at 917 with fuzz 1 (offset 20 lines).</FONT>

<BR><FONT SIZE=2 FACE="Arial">Hunk #3 succeeded at 940 with fuzz 2.</FONT>

<BR><FONT SIZE=2 FACE="Arial">Hunk #4 FAILED at 954.</FONT>

<BR><FONT SIZE=2 FACE="Arial">Hunk #5 succeeded at 1002 (offset 29 lines).</FONT>

<BR><FONT SIZE=2 FACE="Arial">Hunk #7 FAILED at 1060.</FONT>

<BR><FONT SIZE=2 FACE="Arial">Hunk #8 FAILED at 1157.</FONT>

<BR><FONT SIZE=2 FACE="Arial">Hunk #9 succeeded at 1773 (offset 160 lines).</FONT>

<BR><FONT SIZE=2 FACE="Arial">4 out of 9 hunks FAILED -- saving rejects to file net/ipv4/udp.c.rej</FONT>

<BR><FONT SIZE=2 FACE="Arial">[root@dev linux-2.6.20-klips-3]#</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">The first issue (Hunk #1) is due to the addition of an extra include, &quot;udp_impl.h&quot;, in udp.c, so the patch doesn't match.</FONT></P>

<P><FONT SIZE=2 FACE="Arial">The second issue (Hunk #4) is due to the test for len changing, so the patch doesn't match.</FONT>

<BR><FONT SIZE=2 FACE="Arial">The third issue (Hunk #7) is due to UDP_INC_STATS_BH() now requires a second parameter, so the patch doesn't match.</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">&lt;&lt; include/linux/net.h issues &gt;&gt;</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">In the 2.6.20 kernel source the type for sock_unregister() changed from &quot;int&quot; to &quot;void&quot;.&nbsp; This is defined in include/linux/net.h and is referenced in net/socket.c and net/ipsec/pfkey_v2.c.&nbsp; I'm not sure what the right solution for this is, to get it to compile I changed the type back to &quot;int&quot; and it appears to work.</FONT></P>

<P><FONT SIZE=2 FACE="Arial">&lt;&lt; config.h &gt;&gt;</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Here is a list of files that require change from config.h to autoconf.h</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">net/ipsec/ipcomp.c</FONT>

<BR><FONT SIZE=2 FACE="Arial">net/ipsec/ipsec_ah.c</FONT>

<BR><FONT SIZE=2 FACE="Arial">net/ipsec/ipsec_alg_cryptoapi.c</FONT>

<BR><FONT SIZE=2 FACE="Arial">net/ipsec/ipsec_esp.c</FONT>

<BR><FONT SIZE=2 FACE="Arial">net/ipsec/ipsec_init.c</FONT>

<BR><FONT SIZE=2 FACE="Arial">net/ipsec/ipsec_ipcomp.c</FONT>

<BR><FONT SIZE=2 FACE="Arial">net/ipsec/ipsec_ipip.c</FONT>

<BR><FONT SIZE=2 FACE="Arial">net/ipsec/ipsec_life.c</FONT>

<BR><FONT SIZE=2 FACE="Arial">net/ipsec/ipsec_mast.c</FONT>

<BR><FONT SIZE=2 FACE="Arial">net/ipsec/ipsec_proc.c</FONT>

<BR><FONT SIZE=2 FACE="Arial">net/ipsec/ipsec_radij.c</FONT>

<BR><FONT SIZE=2 FACE="Arial">net/ipsec/ipsec_rcv.c</FONT>

<BR><FONT SIZE=2 FACE="Arial">net/ipsec/ipsec_sa.c</FONT>

<BR><FONT SIZE=2 FACE="Arial">net/ipsec/ipsec_snprintf.c</FONT>

<BR><FONT SIZE=2 FACE="Arial">net/ipsec/ipsec_tunnel.c</FONT>

<BR><FONT SIZE=2 FACE="Arial">net/ipsec/ipsec_xform.c</FONT>

<BR><FONT SIZE=2 FACE="Arial">net/ipsec/ipsec_xmit.c</FONT>

<BR><FONT SIZE=2 FACE="Arial">net/ipsec/pfkey_v2.c</FONT>

<BR><FONT SIZE=2 FACE="Arial">net/ipsec/pfkey_v2_ext_process.c</FONT>

<BR><FONT SIZE=2 FACE="Arial">net/ipsec/pfkey_v2_parser.c</FONT>

<BR><FONT SIZE=2 FACE="Arial">net/ipsec/radij.c</FONT>

<BR><FONT SIZE=2 FACE="Arial">net/ipsec/aes/ipsec_alg_aes.c</FONT>

<BR><FONT SIZE=2 FACE="Arial">net/ipsec/alg/ipsec_alg_cryptoapi.c</FONT>

<BR><FONT SIZE=2 FACE="Arial">net/ipsec/alg/Makefile</FONT>

<BR><FONT SIZE=2 FACE="Arial">net/ipsec/des/ipsec_alg_3des.c</FONT>

<BR><FONT SIZE=2 FACE="Arial">include/openswan/ipsec_rcv.h</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">If anyone needs them I have some patch files I created that will let you work around these issues, but hopefully someone will be able to quickly create the proper fixes for the issues.</FONT></P>

<P><FONT FACE="Times New Roman">-mike</FONT>
</P>

</BODY>
</HTML>