NetBSD-Bugs archive

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

Re: kern/41074: ipnat kills NFS connections



The following reply was made to PR kern/41074; it has been noted by GNATS.

From: Izumi Tsutsui <tsutsui%ceres.dti.ne.jp@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: kern-bug-people%NetBSD.org@localhost, gnats-admin%NetBSD.org@localhost, 
netbsd-bugs%NetBSD.org@localhost,
        tsutsui%ceres.dti.ne.jp@localhost
Subject: Re: kern/41074: ipnat kills NFS connections
Date: Tue, 7 Apr 2009 02:49:08 +0900

 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