Opps:

I was a little to quick, .. that one won't work.. but I
think this one will (need to have the right magic header
goo :-D)

Try this please (this one will build and actually do something :-D)

R

Index: ip6_output.c
===================================================================
--- ip6_output.c        (revision 205059)
+++ ip6_output.c        (working copy)
@@ -66,6 +66,7 @@
 #include "opt_inet.h"
 #include "opt_inet6.h"
 #include "opt_ipsec.h"
+#include "opt_sctp.h"
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -102,6 +103,10 @@
 #include <netipsec/key.h>
 #include <netinet6/ip6_ipsec.h>
 #endif /* IPSEC */
+#ifdef SCTP
+#include <netinet/sctp.h>
+#include <netinet/sctp_crc32.h>
+#endif
 
 #include <netinet6/ip6protosw.h>
 #include <netinet6/scope6_var.h>
@@ -208,6 +213,9 @@
        struct route_in6 *ro_pmtu = NULL;
        int hdrsplit = 0;
        int needipsec = 0;
+#ifdef SCTP
+       int sw_csum;
+#endif
 #ifdef IPSEC
        struct ipsec_output_state state;
        struct ip6_rthdr *rh = NULL;
@@ -829,6 +837,10 @@
                        }
                        m->m_pkthdr.csum_flags |=
                            CSUM_IP_CHECKED | CSUM_IP_VALID;
+#ifdef SCTP
+                       if (m->m_pkthdr.csum_flags & CSUM_SCTP)
+                               m->m_pkthdr.csum_flags |= CSUM_SCTP_VALID;
+#endif
                        error = netisr_queue(NETISR_IPV6, m);
                        goto done;
                } else
@@ -857,6 +869,13 @@
         * 4: if dontfrag == 1 && alwaysfrag == 1
         *      error, as we cannot handle this conflicting request
         */
+#ifdef SCTP
+       sw_csum = m->m_pkthdr.csum_flags & ~ifp->if_hwassist;
+       if (sw_csum & CSUM_SCTP) {
+               sctp_delayed_cksum(m);
+               sw_csum &= ~CSUM_SCTP;
+       }
+#endif
        tlen = m->m_pkthdr.len;
 
        if (opt && (opt->ip6po_flags & IP6PO_DONTFRAG))

On Mar 12, 2010, at 11:47 AM, Randall Stewart wrote:

Nigel:

Here is a patch for your issue I think.

Its off of a head machine but I think it should apply. If not
let me know.

See if this does not fix the issue.

Thanks

R
<patch.ip6_output.txt>
------------------------------
Randall Stewart
803-317-4952 (cell)
803-345-0391(direct)

_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org "

------------------------------
Randall Stewart
803-317-4952 (cell)
803-345-0391(direct)

_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to