automatic DPDK test reports
 help / color / mirror / Atom feed
* |WARNING| pw114214 [PATCH] 答复: [PATCH] gro: fix gro with tcp push flag
@ 2022-07-26  7:09 dpdklab
  0 siblings, 0 replies; only message in thread
From: dpdklab @ 2022-07-26  7:09 UTC (permalink / raw)
  To: test-report; +Cc: dpdk-test-reports

[-- Attachment #1: Type: text/plain, Size: 5232 bytes --]

Test-Label: iol-testing
Test-Status: WARNING
http://dpdk.org/patch/114214

_apply patch failure_

Submitter: Jun Qiu <jun.qiu@jaguarmicro.com>
Date: Tuesday, July 26 2022 06:57:27 
Applied on: CommitID:72206323a5dd3182b13f61b25a64abdddfee595c
Apply patch set 114214 failed:

Checking patch lib/gro/gro_tcp4.c...
error: while searching for:
       hdr_len = pkt->l2_len + pkt->l3_len + pkt->l4_len;

       /*
        * Don't process the packet which has FIN, SYN, RST, PSH, URG, ECE
        * or CWR set.
        */
       if (tcp_hdr->tcp_flags != RTE_TCP_ACK_FLAG)
               return -1;
       /*
        * Don't process the packet whose payload length is less than or

error: patch failed: lib/gro/gro_tcp4.c:220
Checking patch lib/gro/gro_tcp4.h...
error: while searching for:
               uint16_t l2_offset)
{
       struct rte_mbuf *pkt_head, *pkt_tail, *lastseg;
       uint16_t hdr_len, l2_len;

       if (cmp > 0) {
               pkt_head = item->firstseg;

error: patch failed: lib/gro/gro_tcp4.h:210
error: while searching for:
       }

       /* check if the IPv4 packet length is greater than the max value */
       hdr_len = l2_offset + pkt_head->l2_len + pkt_head->l3_len +
               pkt_head->l4_len;
       l2_len = l2_offset > 0 ? pkt_head->outer_l2_len : pkt_head->l2_len;
       if (unlikely(pkt_head->pkt_len - l2_len + pkt_tail->pkt_len -
                               hdr_len > MAX_IPV4_PKT_LENGTH))
               return 0;

       /* remove the packet header for the tail packet */
       rte_pktmbuf_adj(pkt_tail, hdr_len);


error: patch failed: lib/gro/gro_tcp4.h:221
Checking patch lib/gro/gro_vxlan_tcp4.c...
error: while searching for:
       tcp_hdr = (struct rte_tcp_hdr *)((char *)ipv4_hdr + pkt->l3_len);

       /*
        * Don't process the packet which has FIN, SYN, RST, PSH, URG,
        * ECE or CWR set.
        */
       if (tcp_hdr->tcp_flags != RTE_TCP_ACK_FLAG)
               return -1;

       hdr_len = pkt->outer_l2_len + pkt->outer_l3_len + pkt->l2_len +

error: patch failed: lib/gro/gro_vxlan_tcp4.c:326
Applying patch lib/gro/gro_tcp4.c with 1 reject...
Rejected hunk #1.
Applying patch lib/gro/gro_tcp4.h with 2 rejects...
Rejected hunk #1.
Rejected hunk #2.
Applying patch lib/gro/gro_vxlan_tcp4.c with 1 reject...
Rejected hunk #1.
diff a/lib/gro/gro_tcp4.c b/lib/gro/gro_tcp4.c	(rejected hunks)
@@ -220,10 +220,10 @@ gro_tcp4_reassemble(struct rte_mbuf *pkt,
        hdr_len = pkt->l2_len + pkt->l3_len + pkt->l4_len;

        /*
-        * Don't process the packet which has FIN, SYN, RST, PSH, URG, ECE
+        * Don't process the packet which has FIN, SYN, RST, URG, ECE
         * or CWR set.
         */
-       if (tcp_hdr->tcp_flags != RTE_TCP_ACK_FLAG)
+       if (tcp_hdr->tcp_flags & (~(RTE_TCP_ACK_FLAG | RTE_TCP_PSH_FLAG)))
                return -1;
        /*
         * Don't process the packet whose payload length is less than or
diff a/lib/gro/gro_tcp4.h b/lib/gro/gro_tcp4.h	(rejected hunks)
@@ -210,7 +210,8 @@ merge_two_tcp4_packets(struct gro_tcp4_item *item,
                uint16_t l2_offset)
 {
        struct rte_mbuf *pkt_head, *pkt_tail, *lastseg;
-       uint16_t hdr_len, l2_len;
+       struct rte_tcp_hdr *head_tcp_hdr, *tail_tcp_hdr;
+       uint16_t hdr_len, l2_len, l3_offset;

        if (cmp > 0) {
                pkt_head = item->firstseg;
@@ -221,13 +222,22 @@ merge_two_tcp4_packets(struct gro_tcp4_item *item,
        }

        /* check if the IPv4 packet length is greater than the max value */
-       hdr_len = l2_offset + pkt_head->l2_len + pkt_head->l3_len +
-               pkt_head->l4_len;
+       l3_offset = l2_offset + pkt_head->l2_len + pkt_head->l3_len;
+       hdr_len = l3_offset + pkt_head->l4_len;
        l2_len = l2_offset > 0 ? pkt_head->outer_l2_len : pkt_head->l2_len;
        if (unlikely(pkt_head->pkt_len - l2_len + pkt_tail->pkt_len -
                                hdr_len > MAX_IPV4_PKT_LENGTH))
                return 0;

+       /* merge push flag to pkt_head */
+       tail_tcp_hdr = rte_pktmbuf_mtod_offset(pkt_tail,
+                               struct rte_tcp_hdr *, l3_offset);
+       if (tail_tcp_hdr->tcp_flags & RTE_TCP_PSH_FLAG) {
+               head_tcp_hdr = rte_pktmbuf_mtod_offset(pkt_head,
+                                       struct rte_tcp_hdr *, l3_offset);
+               head_tcp_hdr->tcp_flags |= RTE_TCP_PSH_FLAG;
+       }
+
        /* remove the packet header for the tail packet */
        rte_pktmbuf_adj(pkt_tail, hdr_len);

diff a/lib/gro/gro_vxlan_tcp4.c b/lib/gro/gro_vxlan_tcp4.c	(rejected hunks)
@@ -326,10 +326,10 @@ gro_vxlan_tcp4_reassemble(struct rte_mbuf *pkt,
        tcp_hdr = (struct rte_tcp_hdr *)((char *)ipv4_hdr + pkt->l3_len);

        /*
-        * Don't process the packet which has FIN, SYN, RST, PSH, URG,
+        * Don't process the packet which has FIN, SYN, RST, URG,
         * ECE or CWR set.
         */
-       if (tcp_hdr->tcp_flags != RTE_TCP_ACK_FLAG)
+       if (tcp_hdr->tcp_flags & (~(RTE_TCP_ACK_FLAG | RTE_TCP_PSH_FLAG)))
                return -1;

        hdr_len = pkt->outer_l2_len + pkt->outer_l3_len + pkt->l2_len +

https://lab.dpdk.org/results/dashboard/patchsets/23070/

UNH-IOL DPDK Community Lab

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-07-26  7:09 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-26  7:09 |WARNING| pw114214 [PATCH] 答复: [PATCH] gro: fix gro with tcp push flag dpdklab

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).