get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/114214/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 114214,
    "url": "https://patches.dpdk.org/api/patches/114214/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/KL1PR0601MB4530942B32414C97701CF28AF7949@KL1PR0601MB4530.apcprd06.prod.outlook.com/",
    "project": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<KL1PR0601MB4530942B32414C97701CF28AF7949@KL1PR0601MB4530.apcprd06.prod.outlook.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/KL1PR0601MB4530942B32414C97701CF28AF7949@KL1PR0601MB4530.apcprd06.prod.outlook.com",
    "date": "2022-07-26T06:57:27",
    "name": "答复: [PATCH] gro: fix gro with tcp push flag",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "a45cf6b12e4e3247255d373ec850cb2a8ccd8d79",
    "submitter": {
        "id": 2785,
        "url": "https://patches.dpdk.org/api/people/2785/?format=api",
        "name": "Jun Qiu",
        "email": "jun.qiu@jaguarmicro.com"
    },
    "delegate": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/KL1PR0601MB4530942B32414C97701CF28AF7949@KL1PR0601MB4530.apcprd06.prod.outlook.com/mbox/",
    "series": [
        {
            "id": 24081,
            "url": "https://patches.dpdk.org/api/series/24081/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=24081",
            "date": "2022-07-26T06:57:27",
            "name": "答复: [PATCH] gro: fix gro with tcp push flag",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/24081/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/114214/comments/",
    "check": "warning",
    "checks": "https://patches.dpdk.org/api/patches/114214/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id DABBDA00C4;\n\tTue, 26 Jul 2022 08:57:32 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 8B7AE40DDD;\n\tTue, 26 Jul 2022 08:57:32 +0200 (CEST)",
            "from APC01-SG2-obe.outbound.protection.outlook.com\n (mail-sgaapc01on2067.outbound.protection.outlook.com [40.107.215.67])\n by mails.dpdk.org (Postfix) with ESMTP id 2528140695;\n Tue, 26 Jul 2022 08:57:31 +0200 (CEST)",
            "from KL1PR0601MB4530.apcprd06.prod.outlook.com\n (2603:1096:820:64::10) by SG2PR06MB4868.apcprd06.prod.outlook.com\n (2603:1096:4:177::14) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5458.19; Tue, 26 Jul\n 2022 06:57:27 +0000",
            "from KL1PR0601MB4530.apcprd06.prod.outlook.com\n ([fe80::59b6:ff9c:d103:9e97]) by KL1PR0601MB4530.apcprd06.prod.outlook.com\n ([fe80::59b6:ff9c:d103:9e97%9]) with mapi id 15.20.5458.025; Tue, 26 Jul 2022\n 06:57:27 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=Z7R1aEQoB9Ephn6jIu7dnyyIKD/uQLjHzBlnI+GF+xctF9QzazbLRV7+q7ZbZm7KBNXi+cYbSfQjwsoyaC4n3wwX09HFslK+yJFhY0Xh/Kpj/qz5kOvzu8RMw/HvQa18qJ0M36doj/SWDnIzzAUaK1Vr8IPXjfDw2y7WhexlsR3S9fPDnnVuEpp7uBC0qujNkqCiMW2G/xha+z+LqrQkMGJFnW4p2ZMtZX5u7DNo8WBmEBrm5Qp09lES1ea6LUIkNfl/SZfpLAm84G4Uwry1++GRJoJqfgi5S8+3HoUtOPSHlB/92ogRMYMBOvfz9Kr0AVkQnD+q2EgMkofOuErHOA==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=rAQyescHIkpe/D4j3ZSg1rruKMz3e1/LsrhkQUJmejE=;\n b=bDbjHUKW50mGFU/pYRl60MfsN6WsflHzkckCsyhm51BPCDcBihqU3DTutqjGqcKeVEFUyjVDZ14da0EcKey08LRT32SsMlUtaoWTWyUQHBUZCMaMgaP6UW2CKPX70718TI6kQ3OsCy8yW1xLOMQ6/zsuluvKCzd2ownBqSbEfct55wuwrBYF70kjZFV7G3XoGgypRqeftyFc3esQ0e9XDKijNfeXKlNets7CQWJ+D3fnFez/bsiOsjYhPJh6QSXmsfO4fs98msbRAoSAgjWAsE8HjfmkDqsBDIIFpsknkuyGAcGT6jWk8YJ95LFTWc+Mpb/atws3De71de/vjGpKrw==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=jaguarmicro.com; dmarc=pass action=none\n header.from=jaguarmicro.com; dkim=pass header.d=jaguarmicro.com; arc=none",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=jaguarmicro.com;\n s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=rAQyescHIkpe/D4j3ZSg1rruKMz3e1/LsrhkQUJmejE=;\n b=Nzq6iCMLwWj7e40ZZLkL8fHu/xbZO+ezPhk3K/V/VV0yze0LENw+rgU21lhQKfdZXnpSljypz558VT021rzVjTPIyPx22Tr8ohsSlVF8rfWodFNxM6xM+RJxRTZ3Ib9ZGMrioTcHwBboP/zngtT+hxuO2jWNx9crZQSYYPxr4vU2Kxm3SxCLbPuiU/DooSrusGCK7mUM8ipsypZh8aVe7ndGrQctrCV6TazM9uIb+DyMjUfrE2w/d5tbZ9bUb0nkHmc0xov1VfX+uiY2s2Y/gUYXsuqFxlavS4ViMS25ajWsNzOVpkCfY1NA34uYcaDm23hQ5Twedmn8cJzvPihZxA==",
        "From": "Jun Qiu <jun.qiu@jaguarmicro.com>",
        "To": "kumaraparameshwaran rathinavel <kumaraparamesh92@gmail.com>",
        "CC": "\"dev@dpdk.org\" <dev@dpdk.org>, \"jiayu.hu@intel.com\" <jiayu.hu@intel.com>,\n \"stable@dpdk.org\" <stable@dpdk.org>",
        "Subject": "=?utf-8?b?562U5aSNOiBbUEFUQ0hdIGdybzogZml4IGdybyB3aXRoIHRjcCBwdXNo?=\n\t=?utf-8?b?IGZsYWc=?=",
        "Thread-Topic": "[PATCH] gro: fix gro with tcp push flag",
        "Thread-Index": "AQHYoLdzwc7SOHq+ikGjq+ryowq21q2QM/cAgAADMwA=",
        "Date": "Tue, 26 Jul 2022 06:57:27 +0000",
        "Message-ID": "\n <KL1PR0601MB4530942B32414C97701CF28AF7949@KL1PR0601MB4530.apcprd06.prod.outlook.com>",
        "References": "<20220726061741.21021-1-jun.qiu@jaguarmicro.com>\n <CANxNyat-1jo0xU1ksrL-KThV-1M=hvKyuZjB_Wf-mxQQCr2PaQ@mail.gmail.com>",
        "In-Reply-To": "\n <CANxNyat-1jo0xU1ksrL-KThV-1M=hvKyuZjB_Wf-mxQQCr2PaQ@mail.gmail.com>",
        "Accept-Language": "en-US",
        "Content-Language": "zh-CN",
        "X-MS-Has-Attach": "",
        "X-MS-TNEF-Correlator": "",
        "authentication-results": "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=jaguarmicro.com;",
        "x-ms-publictraffictype": "Email",
        "x-ms-office365-filtering-correlation-id": "b1fd9c07-ca7d-447f-276b-08da6ed419d1",
        "x-ms-traffictypediagnostic": "SG2PR06MB4868:EE_",
        "x-ms-exchange-senderadcheck": "1",
        "x-ms-exchange-antispam-relay": "0",
        "x-microsoft-antispam": "BCL:0;",
        "x-microsoft-antispam-message-info": "\n 7tfkOkF6FOtFH302twnS/bzBeiXh7L2sVRs6HBiIbyCMpxe2W3/r4kf7uoV9zvEKV+RIilhwIrEAjfZNuPOsFLs1s0q0WryjV+ZdzlWZpbh+qvXA5++h0UWsT1fv681AbCTNJKjsTAdth2KS2dz/GGyN66XzDIJw1Fd8I/lBvj4dKCOmro5Bx3YI28nEQ7piftLU1oSytCXl3+M79BpgJ6VEKEbB7e0HgpttX9gKXWv+8cfjv9KZscUbdU+pn8ThaRWMfXV2mgAJGGUows44fZofFe0UMbE9kOk21UGimcEizwJRxgPo6Bp2WM8jtGj7ShQqeyqPifsUdqS6t1+7Bp63KOhQOwYI6vW25XQ57k4QBwHyyhSFXlY8oFpx/cYSLKwZLZKOHPHmUTfdDCNrS9+HgzLNqD3/xgGb+a9/lyGtAHS99muM5+BAjRy7xrRc0hvIm19j5Yd6WcI3wIMlDkd+TqgeoRjH0KVrjyA6aRBLV9feOTgRI3b3h6/CCNKZ/fl2OgB0Z9XGvauJpTj58I4ru7MGPifG6aRyUsUlgoJLaP9BfA2dJbPPvAVsCWSunR4tS2BTEcR9f62QGicgO+dSD2+5nXKZSF4WClS6Egd0qSk2MJl+xpVgOlIQ14PmVgSR4iuvv1chnGOMZvOiVfIfmvtKzMuFhL8kARov+05t0Yu81al0aZYbKN5Z+Et4frzWBpSnNOkkcdq7/Rn03Mk18T8wg6bZSflzMIlTe/rJXE9S2tzbXfEnt9Tce3dimfACXDg/wg1B3CMDS3NTgq3kCvvhKBXpnX2Bk5Iu1UlxxEKS6eq6M045/ExNM/cH",
        "x-forefront-antispam-report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:KL1PR0601MB4530.apcprd06.prod.outlook.com; PTR:;\n CAT:NONE;\n SFS:(13230016)(396003)(366004)(39840400004)(136003)(346002)(376002)(186003)(64756008)(66446008)(66476007)(71200400001)(76116006)(4326008)(66946007)(83380400001)(54906003)(66556008)(6916009)(9686003)(224303003)(53546011)(7696005)(6506007)(41300700001)(2906002)(26005)(33656002)(38070700005)(86362001)(38100700002)(122000001)(5660300002)(44832011)(316002)(55016003)(52536014)(478600001)(8936002);\n DIR:OUT; SFP:1101;",
        "x-ms-exchange-antispam-messagedata-chunkcount": "1",
        "x-ms-exchange-antispam-messagedata-0": "=?utf-8?q?YAbqzZVCS/e8VJUVj6k8UOBZktZN?=\n\t=?utf-8?q?c5WFDg4M2287Uo6PQwnjGEJvzBmqXSA3DyEx+Hsq3Yf+A7+VXmuoXESxo4ugh0IUq?=\n\t=?utf-8?q?U03zKYod/zMqCU0bu/sseotLwBPPEfkBfEGwzdooHEXguim0WvTqR8Zfhu8gB114u?=\n\t=?utf-8?q?XtOf6EU2cMn0B37XAzR+zGbX0b0wM8sn7AlOXMk2eTv8RUgmdrLOmZbkCCsintsX2?=\n\t=?utf-8?q?JxqgrlushWNMD9cB6qUEmbHOo87X2G/qfHmyLp6nOwzRkBKGbwTflpimCW5kalrFA?=\n\t=?utf-8?q?+QPx/EZC45S62F3soEUHYl6ACDfWRml0e8nUZTyl3hNQJWhXaI2wZGI/B8U+QqAA0?=\n\t=?utf-8?q?BQFAbVTevevhCVeaJfntcw61WgVOBnYI7ygFxF/fyWwvqYifJxPZxFsU/wFn1XRLC?=\n\t=?utf-8?q?d0cAIFC3yH/UhnkI/sMYEUlRwiT5AdmNhwC2QXhdeKASWhBwadcN0YoFqM6i3X2f1?=\n\t=?utf-8?q?aiox0rEg5U5t3FiDsj7P0u7JTQDlBsBKfIP/n/rQAyUwgGcueaKYDGBOw1fHt3h3y?=\n\t=?utf-8?q?kvRUYf6BX0F3J8+w2kTsjYsWr+zdbtJR2Joy6VpsWxCD0BNBh/HArm8oE+OkPdYIz?=\n\t=?utf-8?q?/8uQMIElYNdxncD4+t/V2T8X1qZpuzOh1E5/VhkwVTVPf0Rff66+OxeXXzC7kt5N4?=\n\t=?utf-8?q?v2dgzYp61Asa7Ww5LNmqh6G9krmmLHf+CKsfuadL0AfSqBKxsuX8bHQJnyPb4g/+2?=\n\t=?utf-8?q?WBWdQj7sVLgDu2wEOWW98w3e3nI4OnFSdIxt6o/yeBIMl1qtX7AfiQKkjCFcBDHa8?=\n\t=?utf-8?q?R0VCuErus82JW6rnk+tkUsEjt/ZTMF2h1KtHFUPFKPaNckqMRLFIB7v8La7MGwRpY?=\n\t=?utf-8?q?vKi26OAHCyBkMhE70naA3tXCquKv+ybz/jl55aJJM9Cx/SxGPYtOxes2lCOtn6LMy?=\n\t=?utf-8?q?W2KCsSUzHIA3sSPEHoDggYX2Xt3/Zjp2uywt3CxOBVkL5CaA8PNebZ1eDkiuiIkel?=\n\t=?utf-8?q?CQnWq52ymVINE8Q7KSQh0xsdXlqML0Xt1jRrYatLcAIH+AcifuDpNSHfAgpurOfec?=\n\t=?utf-8?q?18JHjXrzTVomZ3iHo0citeP3fLeryAE8Wkm0XH0GjIrYvgAoLFKlOXV8n0p6WqJRK?=\n\t=?utf-8?q?xx/RqaO0UiTC6ueDZ6YdCscGaBfIAaDDFODShUn8nh1zdOyz/zk1AV/tA3wkcYPIs?=\n\t=?utf-8?q?3QLhnkp0Mx7zC8nnWsQRsyp65KEij0ncAbd3Ef7azrgdDyzWLki0/DcsWl6H+ZjbU?=\n\t=?utf-8?q?jbeTM0KvcvQae7xaW7J9Z6K00RZ+0m/RW7o7jy9HW2VQ9ryDRvFuyhypMQ1NqJmTR?=\n\t=?utf-8?q?Rd2KalCYZKcZLiHzKyH3JAXWcxYm2h0EFUih7DTBHDMZnkk7Xk4MD2NwP1SJ9UFGM?=\n\t=?utf-8?q?wiiwQd1qgkwGccbpoZyaEZmlNxE0gRRT4iW9lTANZOJGX6+KKIuO+/knjzBcW9Ps8?=\n\t=?utf-8?q?CRNNiGRPvfOETJveEQ84a0B8aKwr8spOW1ZTzIcHCQDNO+511cVuWjj7QRkJdArV8?=\n\t=?utf-8?q?hJXurh+9U0kGBVy9UmVkJEtmJCTtRgphhFFH7i3yQBnx2ZDzGh19dg8P0kbp0Co+o?=\n\t=?utf-8?q?Xf5grW3eiTBd?=",
        "Content-Type": "multipart/alternative;\n boundary=\"_000_KL1PR0601MB4530942B32414C97701CF28AF7949KL1PR0601MB4530_\"",
        "MIME-Version": "1.0",
        "X-OriginatorOrg": "jaguarmicro.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n KL1PR0601MB4530.apcprd06.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n b1fd9c07-ca7d-447f-276b-08da6ed419d1",
        "X-MS-Exchange-CrossTenant-originalarrivaltime": "26 Jul 2022 06:57:27.1449 (UTC)",
        "X-MS-Exchange-CrossTenant-fromentityheader": "Hosted",
        "X-MS-Exchange-CrossTenant-id": "1e45a5c2-d3e1-46b3-a0e6-c5ebf6d8ba7b",
        "X-MS-Exchange-CrossTenant-mailboxtype": "HOSTED",
        "X-MS-Exchange-CrossTenant-userprincipalname": "\n T4GzVXN9poAgAlF5IRUvTES7UYrsjcKfhEHlx5jRvWR/BgvTRORFOdfoLC6zaDry8whxDvSoSOd4KU50Z5+huQ==",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "SG2PR06MB4868",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "May be in rte_gro_reassemble_burst, where no delay is introduced, PUSH packets can be merged\n\n发件人: kumaraparameshwaran rathinavel <kumaraparamesh92@gmail.com>\n发送时间: 2022年7月26日 14:41\n收件人: Jun Qiu <jun.qiu@jaguarmicro.com>\n抄送: dev@dpdk.org; jiayu.hu@intel.com; stable@dpdk.org\n主题: Re: [PATCH] gro: fix gro with tcp push flag\n\n\n\nOn Tue, Jul 26, 2022 at 11:48 AM Jun Qiu <jun.qiu@jaguarmicro.com<mailto:jun.qiu@jaguarmicro.com>> wrote:\nTCP data packets sometimes carry a PUSH flag. Currently,\nonly the packets that do not have PUSH flag can be GROed.\nThe packets that have a PUSH flag cannot be GROed, the packets\nthat cannot be processed by GRO are placed last.\nIn this case, the received packets may be out of order.\nFor example, there are two packets mbuf1 and mbuf2. mbuf1\ncontains PUSH flag, mbuf2 does not contain PUSH flag.\nAfter GRO processing, mbuf2 is sent for processing before mbuf1.\nThis out-of-order will affect TCP processing performance and\nlead to unnecessary dup-ACK.\n\nReferring to the Linux kernel implementation, packets with PUSH\nflag can also perform GRO. And if one of the packets containing\nPUSH flag, the packets after GRO will carry PUSH flag.\n\nIn case of smaller transfers in which the TCP segment size is not more than one MTU, it is a single TCP packet with PSH flag set, so in those cases  we are introducing unwanted delay.  I think the better approach would be if there are previous packets in the flow and the current packet received has PSH flag then coalesce with the previous packet, if lookup is failure and the current packet has PSH flag set then deliver it immediately.\n\nFixes: 0d2cbe59b719 (\"lib/gro: support TCP/IPv4\")\nCc: stable@dpdk.org<mailto:stable@dpdk.org>\n\nSigned-off-by: Jun Qiu <jun.qiu@jaguarmicro.com<mailto:jun.qiu@jaguarmicro.com>>\n---\n lib/gro/gro_tcp4.c       |  4 ++--\n lib/gro/gro_tcp4.h       | 16 +++++++++++++---\n lib/gro/gro_vxlan_tcp4.c |  4 ++--\n 3 files changed, 17 insertions(+), 7 deletions(-)\n\n--\n2.25.1",
    "diff": "diff --git a/lib/gro/gro_tcp4.c b/lib/gro/gro_tcp4.c\r\nindex 7498c66141..7849a2bd1d 100644\r\n--- a/lib/gro/gro_tcp4.c\r\n+++ b/lib/gro/gro_tcp4.c\r\n@@ -220,10 +220,10 @@ gro_tcp4_reassemble(struct rte_mbuf *pkt,\r\n        hdr_len = pkt->l2_len + pkt->l3_len + pkt->l4_len;\r\n\r\n        /*\r\n-        * Don't process the packet which has FIN, SYN, RST, PSH, URG, ECE\r\n+        * Don't process the packet which has FIN, SYN, RST, URG, ECE\r\n         * or CWR set.\r\n         */\r\n-       if (tcp_hdr->tcp_flags != RTE_TCP_ACK_FLAG)\r\n+       if (tcp_hdr->tcp_flags & (~(RTE_TCP_ACK_FLAG | RTE_TCP_PSH_FLAG)))\r\n                return -1;\r\n        /*\r\n         * Don't process the packet whose payload length is less than or\r\ndiff --git a/lib/gro/gro_tcp4.h b/lib/gro/gro_tcp4.h\r\nindex 212f97a042..2974faf228 100644\r\n--- a/lib/gro/gro_tcp4.h\r\n+++ b/lib/gro/gro_tcp4.h\r\n@@ -210,7 +210,8 @@ merge_two_tcp4_packets(struct gro_tcp4_item *item,\r\n                uint16_t l2_offset)\r\n {\r\n        struct rte_mbuf *pkt_head, *pkt_tail, *lastseg;\r\n-       uint16_t hdr_len, l2_len;\r\n+       struct rte_tcp_hdr *head_tcp_hdr, *tail_tcp_hdr;\r\n+       uint16_t hdr_len, l2_len, l3_offset;\r\n\r\n        if (cmp > 0) {\r\n                pkt_head = item->firstseg;\r\n@@ -221,13 +222,22 @@ merge_two_tcp4_packets(struct gro_tcp4_item *item,\r\n        }\r\n\r\n        /* check if the IPv4 packet length is greater than the max value */\r\n-       hdr_len = l2_offset + pkt_head->l2_len + pkt_head->l3_len +\r\n-               pkt_head->l4_len;\r\n+       l3_offset = l2_offset + pkt_head->l2_len + pkt_head->l3_len;\r\n+       hdr_len = l3_offset + pkt_head->l4_len;\r\n        l2_len = l2_offset > 0 ? pkt_head->outer_l2_len : pkt_head->l2_len;\r\n        if (unlikely(pkt_head->pkt_len - l2_len + pkt_tail->pkt_len -\r\n                                hdr_len > MAX_IPV4_PKT_LENGTH))\r\n                return 0;\r\n\r\n+       /* merge push flag to pkt_head */\r\n+       tail_tcp_hdr = rte_pktmbuf_mtod_offset(pkt_tail,\r\n+                               struct rte_tcp_hdr *, l3_offset);\r\n+       if (tail_tcp_hdr->tcp_flags & RTE_TCP_PSH_FLAG) {\r\n+               head_tcp_hdr = rte_pktmbuf_mtod_offset(pkt_head,\r\n+                                       struct rte_tcp_hdr *, l3_offset);\r\n+               head_tcp_hdr->tcp_flags |= RTE_TCP_PSH_FLAG;\r\n+       }\r\n+\r\n        /* remove the packet header for the tail packet */\r\n        rte_pktmbuf_adj(pkt_tail, hdr_len);\r\n\r\ndiff --git a/lib/gro/gro_vxlan_tcp4.c b/lib/gro/gro_vxlan_tcp4.c\r\nindex 3be4deb7c7..884802af0b 100644\r\n--- a/lib/gro/gro_vxlan_tcp4.c\r\n+++ b/lib/gro/gro_vxlan_tcp4.c\r\n@@ -326,10 +326,10 @@ gro_vxlan_tcp4_reassemble(struct rte_mbuf *pkt,\r\n        tcp_hdr = (struct rte_tcp_hdr *)((char *)ipv4_hdr + pkt->l3_len);\r\n\r\n        /*\r\n-        * Don't process the packet which has FIN, SYN, RST, PSH, URG,\r\n+        * Don't process the packet which has FIN, SYN, RST, URG,\r\n         * ECE or CWR set.\r\n         */\r\n-       if (tcp_hdr->tcp_flags != RTE_TCP_ACK_FLAG)\r\n+       if (tcp_hdr->tcp_flags & (~(RTE_TCP_ACK_FLAG | RTE_TCP_PSH_FLAG)))\r\n                return -1;\r\n\r\n        hdr_len = pkt->outer_l2_len + pkt->outer_l3_len + pkt->l2_len +\r\n",
    "prefixes": []
}