Here is a diff to enable the checksum offload support for bge(4).

Looking for any testing.


Index: if_bge.c
===================================================================
RCS file: /home/cvs/src/sys/dev/pci/if_bge.c,v
retrieving revision 1.340
diff -u -p -r1.340 if_bge.c
--- if_bge.c    25 Aug 2013 18:34:21 -0000      1.340
+++ if_bge.c    9 Sep 2013 18:42:29 -0000
@@ -2893,12 +2893,14 @@ bge_attach(struct device *parent, struct
        /*
         * 5700 B0 chips do not support checksumming correctly due
         * to hardware bugs.
+        *
+        * It seems all controllers have a bug that can generate UDP
+        * datagrams with a checksum value 0 when TX UDP checksum     
+        * offloading is enabled. Generating UDP checksum value 0 is
+        * a violation of RFC 768.
         */
        if (sc->bge_chipid != BGE_CHIPID_BCM5700_B0)
-               ifp->if_capabilities |= IFCAP_CSUM_IPv4;
-#if 0  /* TCP/UDP checksum offload breaks with pf(4) */
-               ifp->if_capabilities |= IFCAP_CSUM_TCPv4|IFCAP_CSUM_UDPv4;
-#endif
+               ifp->if_capabilities |= IFCAP_CSUM_IPv4 | IFCAP_CSUM_TCPv4;
 
        if (BGE_IS_JUMBO_CAPABLE(sc))
                ifp->if_hardmtu = BGE_JUMBO_MTU;

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.

Reply via email to