NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/41074: ipnat kills NFS connections



I wrote:

> > >Synopsis:       ipnat kills NFS connections
 :
> "options NFS_BOOT_RWSIZE=1024" on the client kernel or using
> NFS via TCP seems to work, so ipnat might have some bugs around
> fragmented UDP packets?

It looks ipnat incorrectly blocks fragmented UDP packets.
The following ugly patch makes 8k UDP NFS work again.

---
Index: ip_nat.c
===================================================================
RCS file: /cvsroot/src/sys/dist/ipf/netinet/ip_nat.c,v
retrieving revision 1.38
diff -u -r1.38 ip_nat.c
--- ip_nat.c    26 Jul 2008 19:44:28 -0000      1.38
+++ ip_nat.c    6 Apr 2009 17:41:04 -0000
@@ -3841,7 +3841,7 @@
                 * If there is no current entry in the nat table for this IP#,
                 * create one for it (if there is a matching rule).
                 */
-               if ((fin->fin_off != 0) && (fin->fin_flx & FI_TCPUDP)) {
+               if ((fin->fin_off != 0) && (fin->fin_flx & FI_TCPUDP) && 0) {
                        natfailed = -1;
                        goto nonatfrag;
                }
@@ -4150,7 +4150,7 @@
        } else {
                u_32_t hv, msk, rmsk;
 
-               if ((fin->fin_off != 0) && (fin->fin_flx & FI_TCPUDP)) {
+               if ((fin->fin_off != 0) && (fin->fin_flx & FI_TCPUDP) && 0) {
                        natfailed = -1;
                        goto nonatfrag;
                }

---
Izumi Tsutsui


Home | Main Index | Thread Index | Old Index