tcp hostcache and ip fastforward for review

Hajimu UMEMOTO ume at mahoroba.org
Tue Nov 11 07:26:00 PST 2003


Hi,

>>>>> On Sun, 09 Nov 2003 17:19:07 +0100
>>>>> Andre Oppermann <oppermann at pipeline.ch> said:

oppermann> The patch is here (relative to -CURRENT as of 2003-11-09):
oppermann>  http://www.nrg4u.com/freebsd/tcphostcache+ipfastforward-20031109.patch

The patch cannot be compiled:

cc -c -O -pipe -march=pentium3 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -fformat-extensions -std=c99 -g -nostdinc -I-  -I. -I/usr/home/ume/cvs/freefall/current/src/sys -I/usr/home/ume/cvs/freefall/current/src/sys/contrib/dev/acpica -I/usr/home/ume/cvs/freefall/current/src/sys/contrib/ipfilter -I/usr/home/ume/cvs/freefall/current/src/sys/contrib/dev/ath -I/usr/home/ume/cvs/freefall/current/src/sys/contrib/dev/ath/freebsd -I/usr/home/ume/cvs/freefall/current/src/sys/contrib/ngatm -D_KERNEL -include opt_global.h -fno-common -finline-limit=15000 -fno-strict-aliasing  -mno-align-long-strings -mpreferred-stack-boundary=2 -ffreestanding -Werror  /usr/home/ume/cvs/freefall/current/src/sys/netinet/ip_input.c
/usr/home/ume/cvs/freefall/current/src/sys/netinet/ip_input.c: In function `ip_forward':
/usr/home/ume/cvs/freefall/current/src/sys/netinet/ip_input.c:1960: warning: implicit declaration of function `ipsec_getpolicybyaddr'
/usr/home/ume/cvs/freefall/current/src/sys/netinet/ip_input.c:1963: warning: assignment makes pointer from integer without a cast
*** Error code 1

There is no ipsec_getpolicybyaddr() for IPSEC.  And, #ifdef is
slightly complex.
I don't tested it actually, yet.

--- sys/netinet/ip_input.c.orig	Wed Nov 12 00:08:42 2003
+++ sys/netinet/ip_input.c	Wed Nov 12 00:18:50 2003
@@ -1957,10 +1957,17 @@
 			int ipsechdr;
 			struct route *ro;
 
+#ifdef IPSEC
+			sp = ipsec4_getpolicybyaddr(mcopy,
+						    IPSEC_DIR_OUTBOUND,
+			                            IP_FORWARDING,
+			                            &ipsecerror);
+#else
 			sp = ipsec_getpolicybyaddr(mcopy,
 						   IPSEC_DIR_OUTBOUND,
 			                           IP_FORWARDING,
 			                           &ipsecerror);
+#endif
 
 			if (sp != NULL) {
 				/* count IPsec header size */
@@ -1995,13 +2002,11 @@
 #else
 				KEY_FREESP(&sp);
 #endif
-				ipstat.ips_cantfrag++;
-				break;
-			} else 
-#endif /*IPSEC || FAST_IPSEC*/
-		destifp = ia->ia_ifp;
-#if defined(IPSEC) || defined(FAST_IPSEC)
+			} else
+				destifp = ia->ia_ifp;
 		}
+#else
+		destifp = ia->ia_ifp;
 #endif /*IPSEC || FAST_IPSEC*/
 		ipstat.ips_cantfrag++;
 		break;

Sincerely,

--
Hajimu UMEMOTO @ Internet Mutual Aid Society Yokohama, Japan
ume at mahoroba.org  ume at bisd.hitachi.co.jp  ume@{,jp.}FreeBSD.org
http://www.imasy.org/~ume/


More information about the freebsd-current mailing list