On Sun, 13 Nov 2005, Jason wrote:

I am running ipfw on this box and do have $fwcmd add divert natd all from any to any via fxp0

hmm, I guess its time to upgrade to 6.0?

The attached untested patch will most likely prevent the bug from recurring by eliminating parallelism between the ip_input() call from the divert socket and other ip_input() processing in the netisr, as it defers that processing to the netisr. However, it won't fix the underlying bug, which I'll keep looking for, and needs to be fixed in order to support net.isr.direct and various other future plans for network stack behavior. I'll see if I can dig someone up to test ipdivert changes, since I'm not set up to test them here easily currently.

Thanks,

Robert N M Watson

Index: ip_divert.c
===================================================================
RCS file: /home/ncvs/src/sys/netinet/ip_divert.c,v
retrieving revision 1.113
diff -u -r1.113 ip_divert.c
--- ip_divert.c 13 May 2005 11:44:37 -0000      1.113
+++ ip_divert.c 13 Nov 2005 19:27:32 -0000
@@ -61,6 +61,7 @@
 #include <vm/uma.h>

 #include <net/if.h>
+#include <net/netisr.h>
 #include <net/route.h>

 #include <netinet/in.h>
@@ -378,7 +379,7 @@
                SOCK_UNLOCK(so);
 #endif
                /* Send packet to input processing */
-               ip_input(m);
+               netisr_queue(NETISR_IP, m);
        }

        return error;
_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to