Subject: IPF 4.1.6 -- NFS Client hangs
To: None <current-users@netbsd.org>
From: Juergen Hannken-Illjes <hannken@eis.cs.tu-bs.de>
List: current-users
Date: 03/05/2005 17:10:03
Since IPFilter was upgraded to 4.1.6 on Feb 19, 2005 I get NFS
client errors `nfs server XXX: not responding' after some time.

I tracked it down to sys/dist/ipf/netinet/fil.c::frpr_udpcommon().
If I remove the `frpr_pullup()' call all goes well.

Does it ring any bells?
 
-- 
Juergen Hannken-Illjes - hannken@eis.cs.tu-bs.de - TU Braunschweig (Germany)

/etc/rc.conf:		ipnat=YES

/etc/ipnat.conf:	map ex0 10.0.1.0/24 -> 0/32 proxy port ftp ftp/tcp
			map ex0 10.0.1.0/24 -> 0/32 portmap tcp/udp 1024:65535
			map ex0 10.0.1.0/24 -> 0/32

No host on 10.0.1.X is involved.

Index: fil.c
===================================================================
RCS file: /cvsroot/src/sys/dist/ipf/netinet/fil.c,v
retrieving revision 1.10
diff -u -1 -0 -r1.10 fil.c
--- fil.c	1 Mar 2005 13:41:43 -0000	1.10
+++ fil.c	5 Mar 2005 16:03:06 -0000
@@ -1073,24 +1073,26 @@
 /* ------------------------------------------------------------------------ */
 static INLINE void frpr_udpcommon(fin)
 fr_info_t *fin;
 {
 	udphdr_t *udp;
 	fr_ip_t *fi;
 
 	fi = &fin->fin_fi;
 	fi->fi_flx |= FI_TCPUDP;
 
+/*
 	if (frpr_pullup(fin, sizeof(*udp)) == -1) {
 		fi->fi_flx |= FI_SHORT;
 		return;
 	}
+*/
 
 	if (!fin->fin_off && (fin->fin_dlen > 3)) {
 		udp = fin->fin_dp;
 
 		fin->fin_sport = ntohs(udp->uh_sport);
 		fin->fin_dport = ntohs(udp->uh_dport);
 	}
 }