<html>
    <head>
      <base href="https://bugzilla.netfilter.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_ASSIGNED "
   title="ASSIGNED - using nfqueue breaks SCTP connection (tracking)"
   href="https://bugzilla.netfilter.org/show_bug.cgi?id=1742#c8">Comment # 8</a>
              on <a class="bz_bug_link 
          bz_status_ASSIGNED "
   title="ASSIGNED - using nfqueue breaks SCTP connection (tracking)"
   href="https://bugzilla.netfilter.org/show_bug.cgi?id=1742">bug 1742</a>
              from <span class="vcard"><a class="email" href="mailto:antonio.ojea.garcia@gmail.com" title="Antonio Ojea <antonio.ojea.garcia@gmail.com>"> <span class="fn">Antonio Ojea</span></a>
</span></b>
        <pre>It is the first time that I send a patch to the kernel so sorry in advance for
all the noise :)

Let me describe the situation, I think I didn't get right the problem, these
are the patches I sent

<a href="https://patchwork.ozlabs.org/project/netfilter-devel/list/?series=405380">https://patchwork.ozlabs.org/project/netfilter-devel/list/?series=405380</a>

I have a test in patch 2 that reproduces the problem, that I think is good

If I apply patch 1 IIUIC it skips skb_checksum_help() , this patch solves the
problem but does not seem right, does it?

diff --git a/net/netfilter/nfnetlink_queue.c b/net/netfilter/nfnetlink_queue.c
index 00f4bd21c59b..428014aea396 100644
--- a/net/netfilter/nfnetlink_queue.c
+++ b/net/netfilter/nfnetlink_queue.c
@@ -600,6 +600,7 @@  nfqnl_build_packet_message(struct net *net, struct
nfqnl_instance *queue,
     case NFQNL_COPY_PACKET:
         if (!(queue->flags & NFQA_CFG_F_GSO) &&
             entskb->ip_summed == CHECKSUM_PARTIAL &&
+            (skb_csum_is_sctp(entskb) && skb_crc32c_csum_help(entskb)) &&
             skb_checksum_help(entskb))
             return NULL;


If instead of an AND I use an OR

-                   skb_checksum_help(entskb))
+                   ((skb_csum_is_sctp(entskb) &&
skb_crc32c_csum_help(entskb)) ||
+                   skb_checksum_help(entskb)))

now the test fails ... so it seems the problem is skb_checksum_help() ??</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are watching all bug changes.</li>
      </ul>
    </body>
</html>