get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 139437,
    "url": "http://patches.dpdk.org/api/patches/139437/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20240417072304.3260172-3-michaelba@nvidia.com/",
    "project": {
        "id": 1,
        "url": "http://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": "<20240417072304.3260172-3-michaelba@nvidia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20240417072304.3260172-3-michaelba@nvidia.com",
    "date": "2024-04-17T07:23:04",
    "name": "[RFC,2/2] ethdev: add data size field to GENEVE option item",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "bafb63ffa107e78e9d77beb75174b50274394d79",
    "submitter": {
        "id": 1949,
        "url": "http://patches.dpdk.org/api/people/1949/?format=api",
        "name": "Michael Baum",
        "email": "michaelba@nvidia.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20240417072304.3260172-3-michaelba@nvidia.com/mbox/",
    "series": [
        {
            "id": 31765,
            "url": "http://patches.dpdk.org/api/series/31765/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=31765",
            "date": "2024-04-17T07:23:02",
            "name": "ethdev: update GENEVE option item structure",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/31765/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/139437/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/139437/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 AF77C43E8E;\n\tWed, 17 Apr 2024 09:23:41 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id C4964406B8;\n\tWed, 17 Apr 2024 09:23:35 +0200 (CEST)",
            "from NAM11-BN8-obe.outbound.protection.outlook.com\n (mail-bn8nam11on2043.outbound.protection.outlook.com [40.107.236.43])\n by mails.dpdk.org (Postfix) with ESMTP id B8E6A406B8\n for <dev@dpdk.org>; Wed, 17 Apr 2024 09:23:33 +0200 (CEST)",
            "from CH5PR02CA0009.namprd02.prod.outlook.com (2603:10b6:610:1ed::10)\n by LV3PR12MB9258.namprd12.prod.outlook.com (2603:10b6:408:1bb::12)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.37; Wed, 17 Apr\n 2024 07:23:29 +0000",
            "from DS3PEPF000099DE.namprd04.prod.outlook.com\n (2603:10b6:610:1ed:cafe::92) by CH5PR02CA0009.outlook.office365.com\n (2603:10b6:610:1ed::10) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7495.23 via Frontend\n Transport; Wed, 17 Apr 2024 07:23:29 +0000",
            "from mail.nvidia.com (216.228.117.160) by\n DS3PEPF000099DE.mail.protection.outlook.com (10.167.17.200) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.7452.22 via Frontend Transport; Wed, 17 Apr 2024 07:23:29 +0000",
            "from rnnvmail203.nvidia.com (10.129.68.9) by mail.nvidia.com\n (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Wed, 17 Apr\n 2024 00:23:15 -0700",
            "from rnnvmail201.nvidia.com (10.129.68.8) by rnnvmail203.nvidia.com\n (10.129.68.9) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Wed, 17 Apr\n 2024 00:23:14 -0700",
            "from nvidia.com (10.127.8.13) by mail.nvidia.com (10.129.68.8) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.12 via Frontend\n Transport; Wed, 17 Apr 2024 00:23:13 -0700"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=URE/epfxMhd+K3ywQuYzFQ5FLTNU9AdIw2dw3OjqM+GGNZjj9KRk8Wck/goDTt9oM/565ARI6AO9pQgtfrutPq2IiPnJXf0oL7sJGwIkG/1dRVJDqc7MSSB6shaEufInnDlshaTk9szNc5/3DsDQFvwQfuOC3cfNw7GiNqR4kvg7CzAzjYs7XbnDOHfcHl+cfnykcvi0q/7uBh5JFzxIbfmK+OmUB88SHK5tY4YOYutolu0nR0bHx5TKKgcR4T6jpKFL8flNcZeIZYNZVqcTmJiefIsnMaMMbm5xDx+4t+PVz/ZhXkNs51pFXlMEjRrme/Ka7HF9MzH7ynVnb4JscA==",
        "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=vnpaSibvuf3jHporDpIkNhAI5Vl3OzZLeoO1y5kR8Tg=;\n b=jjl+bTW6c8oVzW50qYtZWpYRsfsPiIXprfPOnqlHmFRDieFCyK6iklhWk9w5cRexnGXTZZwd6lfJ3XnaZOjavY5pMP7TO6/54FhaIwlc64XR+ysEeRWBcTY2/pubDlRI83RtmDxDwaLYTOIRguba9zKMvOXV4/p7CDJRMLR8j+dldQkbdqRwBG9H3NeK3x5/bPzhwT89bRdS9T3bfFDc4w8jV9la0B1yU3yV1ZHK5VBNpYis1c3L3F4AHHESs2Al/8HAHsJQOAfRhKdYW8UGlKh5+T3+PjQGxrgOFT4XHFLKjNNOd4l01BoBRRa2LhUMdt5udRmVzyiveKAIQTKCHw==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 216.228.117.160) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com;\n dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com;\n dkim=none (message not signed); arc=none (0)",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=vnpaSibvuf3jHporDpIkNhAI5Vl3OzZLeoO1y5kR8Tg=;\n b=nsnQ0fhrdy5wKViYDCI96ZqX//HG8D9a5X3uwXLRrkosKnjIJRT3p46pHe0ADc871e+jzw/Q5eeUPVxTCzlq08UOsFhdOeEwTr/EW7nKJrDR6Uokkv1iPzK8IJyK9d52QHpSAFKWw2alMK0BWRpwiZSRzR1ACXwgyFlmHemD28N9tCqFtEI+hpXnhidjZlLyM2guA6dZQDMpbOTtn/fTgyA3xlhJmzqSjlmeLCs9v6w/6sNF+e4g4/smSjBi/BEbQuyCbDs/QSNjXeJ6TOaOy8smN2B9S6PS294ZNtO55LJgnZqbPle8fpQBegIh6WsRm9pp/hxT5yWb/iAy0wtJFw==",
        "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 216.228.117.160)\n smtp.mailfrom=nvidia.com;\n dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=nvidia.com;",
        "Received-SPF": "Pass (protection.outlook.com: domain of nvidia.com designates\n 216.228.117.160 as permitted sender) receiver=protection.outlook.com;\n client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C",
        "From": "Michael Baum <michaelba@nvidia.com>",
        "To": "<dev@dpdk.org>",
        "CC": "Dariusz Sosnowski <dsosnowski@nvidia.com>, Thomas Monjalon\n <thomas@monjalon.net>, Ferruh Yigit <ferruh.yigit@amd.com>, Ori Kam\n <orika@nvidia.com>",
        "Subject": "[RFC 2/2] ethdev: add data size field to GENEVE option item",
        "Date": "Wed, 17 Apr 2024 10:23:04 +0300",
        "Message-ID": "<20240417072304.3260172-3-michaelba@nvidia.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20240417072304.3260172-1-michaelba@nvidia.com>",
        "References": "<20240417072304.3260172-1-michaelba@nvidia.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-NV-OnPremToCloud": "ExternallySecured",
        "X-EOPAttributedMessage": "0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "DS3PEPF000099DE:EE_|LV3PR12MB9258:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "f2f31199-8ecb-4313-af52-08dc5eaf47bf",
        "X-LD-Processed": "43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n /hT8Z2/amjda2cQ/dqoeTogXJH3JAZFsgAbBVzgv8Hsf4iSrl9NXuw5+qC2hhvF9wRMYF8V8ijvDhLQzlzgryjSsfErcd+TdUE9wdC1J/TjGJgQDKE9htIiiiIV4fWDdG0ZvSj9KiFbqHemCfQ433g7xIh6GjpzPFN9nm4e8bUnmd9il+oeM6/LmCHNUiL2w+17Lu7X6MaQCf5U0TBeMDWEe8E+RNwnt7vL77Bc37o6koxJ7LeSoggqaAungsFRfDahzHftVXRAUp7zY0I00ajqmyn+obpNNrJNWdlgiTZHjzFQrHJxtU2D5/roA01cetX2D+myQwfXwGo+iuigcm6PhOEzbIo78WeFhDQPKreXluKd2iEOzchOIqNiiiFe9CtxGI+jBuv6BFFbQ5TZ6sGp0rDjohlhL850irHTLiDukfYvn3tnKH66P5Nx9NNqCB4vrq812surA/VcR/dzCjTgfolTB5+/2/4o5EGNEuYI9LcGcJS83xOWvVeWDlr6Pnr95fnsEYqgcEmzkXkh+t3YxPE2xZP34QrKGoHmH9P+rPlzDCkMiqhX8NfU13q5WmoN4FOxLUtwvBctzVB3xieAb0ndMGpNyncpxcxwrymDhEz1eRWSd06HifvrvsggFly9sHP8BMmGmw6pRwikyOugBVd5WtmPqcdYTqX0nSF7PiezULHr9d7yCjSGkoVpfzAuaPz8uFg9Y07aSfPVfbfoLXBCtC+YdfT1msLCrCqW2bCyT2NWk5hBYfd3qf1jY",
        "X-Forefront-Antispam-Report": "CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1;\n SRV:;\n IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE;\n SFS:(13230031)(36860700004)(82310400014)(376005)(1800799015); DIR:OUT;\n SFP:1101;",
        "X-OriginatorOrg": "Nvidia.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "17 Apr 2024 07:23:29.4393 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n f2f31199-8ecb-4313-af52-08dc5eaf47bf",
        "X-MS-Exchange-CrossTenant-Id": "43083d15-7273-40c1-b7db-39efd9ccc17a",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160];\n Helo=[mail.nvidia.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n DS3PEPF000099DE.namprd04.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "LV3PR12MB9258",
        "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": "The \"rte_flow_item_geneve_opt\" structure has field for option length.\nThis field has 2 different usages which might limit each other:\n\n 1. field to matching with value/mask.\n 2. descriptor for data array size.\n\nThis patch adds a new field \"data_array_size\" into\n\"rte_flow_item_geneve_opt\" structure in addition to existing\n\"option_len\" field.\n\nSigned-off-by: Michael Baum <michaelba@nvidia.com>\n---\n app/test-pmd/cmdline_flow.c                 | 10 ++++++\n doc/guides/prog_guide/rte_flow.rst          | 16 +++++++++\n doc/guides/testpmd_app_ug/testpmd_funcs.rst |  3 +-\n lib/ethdev/rte_flow.c                       | 36 ++++++++++-----------\n lib/ethdev/rte_flow.h                       |  3 +-\n 5 files changed, 47 insertions(+), 21 deletions(-)",
    "diff": "diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c\nindex 60ee9337cf..966a47936a 100644\n--- a/app/test-pmd/cmdline_flow.c\n+++ b/app/test-pmd/cmdline_flow.c\n@@ -492,6 +492,7 @@ enum index {\n \tITEM_GENEVE_OPT_TYPE,\n \tITEM_GENEVE_OPT_LENGTH,\n \tITEM_GENEVE_OPT_DATA,\n+\tITEM_GENEVE_OPT_DATA_ARRAY_SIZE,\n \tITEM_INTEGRITY,\n \tITEM_INTEGRITY_LEVEL,\n \tITEM_INTEGRITY_VALUE,\n@@ -2032,6 +2033,7 @@ static const enum index item_geneve_opt[] = {\n \tITEM_GENEVE_OPT_TYPE,\n \tITEM_GENEVE_OPT_LENGTH,\n \tITEM_GENEVE_OPT_DATA,\n+\tITEM_GENEVE_OPT_DATA_ARRAY_SIZE,\n \tITEM_NEXT,\n \tZERO,\n };\n@@ -5772,6 +5774,14 @@ static const struct token token_list[] = {\n \t\t\t\t(sizeof(struct rte_flow_item_geneve_opt),\n \t\t\t\tITEM_GENEVE_OPT_DATA_SIZE)),\n \t},\n+\t[ITEM_GENEVE_OPT_DATA_ARRAY_SIZE] = {\n+\t\t.name = \"data_size\",\n+\t\t.help = \"GENEVE option data array size\",\n+\t\t.next = NEXT(item_geneve_opt, NEXT_ENTRY(COMMON_UNSIGNED),\n+\t\t\t     item_param),\n+\t\t.args = ARGS(ARGS_ENTRY(struct rte_flow_item_geneve_opt,\n+\t\t\t\t\tdata_array_size)),\n+\t},\n \t[ITEM_INTEGRITY] = {\n \t\t.name = \"integrity\",\n \t\t.help = \"match packet integrity\",\ndiff --git a/doc/guides/prog_guide/rte_flow.rst b/doc/guides/prog_guide/rte_flow.rst\nindex dad588763f..cce02fe1d6 100644\n--- a/doc/guides/prog_guide/rte_flow.rst\n+++ b/doc/guides/prog_guide/rte_flow.rst\n@@ -1092,6 +1092,22 @@ Matches a GENEVE header.\n - ``rsvd1``: reserved, normally 0x00.\n - Default ``mask`` matches VNI only.\n \n+\n+Item: ``GENEVE_OPT``\n+^^^^^^^^^^^^^^^^^^^^\n+\n+Matches a GENEVE TLV option header.\n+\n+- ``option_class``: option class ID.\n+- ``option_type``: option type.\n+- ``option_len``: option data length in 4-bytes granularity.\n+- ``data``: option data array.\n+- ``data_array_size``: option data array size.\n+  This field is not matchable, it is descriptor how to read the array.\n+  It should be specified in ``mask`` as well.\n+- Default ``mask`` matches type only.\n+\n+\n Item: ``VXLAN-GPE``\n ^^^^^^^^^^^^^^^^^^^\n \ndiff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst\nindex 2fbf9220d8..97623044e9 100644\n--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst\n+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst\n@@ -3743,7 +3743,8 @@ This section lists supported pattern items and their attributes, if any.\n   - ``type {unsigned}``: GENEVE option type.\n   - ``length {unsigned}``: GENEVE option length in 32-bit words.\n   - ``data {hex string}``: GENEVE option data, the length is defined by\n-    ``length`` field.\n+    ``data_size`` field.\n+  - ``data_size {unsigned}``: GENEVE option data size in 32-bit words.\n \n - ``vxlan-gpe``: match VXLAN-GPE header.\n \ndiff --git a/lib/ethdev/rte_flow.c b/lib/ethdev/rte_flow.c\nindex 2803507462..d68359961d 100644\n--- a/lib/ethdev/rte_flow.c\n+++ b/lib/ethdev/rte_flow.c\n@@ -81,6 +81,21 @@ rte_flow_item_flex_conv(void *buf, const void *data)\n \treturn src->length;\n }\n \n+static size_t\n+rte_flow_item_geneve_opt_conv(void *buf, const void *data)\n+{\n+\tconst struct rte_flow_item_geneve_opt *src = data;\n+\tuint16_t byte_size = src->data_array_size << 2;\n+\n+\tif (buf) {\n+\t\tstruct rte_flow_item_geneve_opt *dst = buf;\n+\t\tvoid *deep_src = (void *)((uintptr_t)(dst + 1));\n+\n+\t\tdst->data = rte_memcpy(deep_src, src->data, byte_size);\n+\t}\n+\treturn byte_size;\n+}\n+\n /** Generate flow_item[] entry. */\n #define MK_FLOW_ITEM(t, s) \\\n \t[RTE_FLOW_ITEM_TYPE_ ## t] = { \\\n@@ -155,7 +170,8 @@ static const struct rte_flow_desc_data rte_flow_desc_item[] = {\n \tMK_FLOW_ITEM(L2TPV3OIP, sizeof(struct rte_flow_item_l2tpv3oip)),\n \tMK_FLOW_ITEM(PFCP, sizeof(struct rte_flow_item_pfcp)),\n \tMK_FLOW_ITEM(ECPRI, sizeof(struct rte_flow_item_ecpri)),\n-\tMK_FLOW_ITEM(GENEVE_OPT, sizeof(struct rte_flow_item_geneve_opt)),\n+\tMK_FLOW_ITEM_FN(GENEVE_OPT, sizeof(struct rte_flow_item_geneve_opt),\n+\t\t\trte_flow_item_geneve_opt_conv),\n \tMK_FLOW_ITEM(INTEGRITY, sizeof(struct rte_flow_item_integrity)),\n \tMK_FLOW_ITEM(CONNTRACK, sizeof(uint32_t)),\n \tMK_FLOW_ITEM(PORT_REPRESENTOR, sizeof(struct rte_flow_item_ethdev)),\n@@ -622,7 +638,6 @@ rte_flow_conv_item_spec(void *buf, const size_t size,\n \tswitch (item->type) {\n \t\tunion {\n \t\t\tconst struct rte_flow_item_raw *raw;\n-\t\t\tconst struct rte_flow_item_geneve_opt *geneve_opt;\n \t\t} spec;\n \t\tunion {\n \t\t\tconst struct rte_flow_item_raw *raw;\n@@ -632,11 +647,9 @@ rte_flow_conv_item_spec(void *buf, const size_t size,\n \t\t} mask;\n \t\tunion {\n \t\t\tconst struct rte_flow_item_raw *raw;\n-\t\t\tconst struct rte_flow_item_geneve_opt *geneve_opt;\n \t\t} src;\n \t\tunion {\n \t\t\tstruct rte_flow_item_raw *raw;\n-\t\t\tstruct rte_flow_item_geneve_opt *geneve_opt;\n \t\t} dst;\n \t\tvoid *deep_src;\n \t\tsize_t tmp;\n@@ -676,21 +689,6 @@ rte_flow_conv_item_spec(void *buf, const size_t size,\n \t\t\toff += tmp;\n \t\t}\n \t\tbreak;\n-\tcase RTE_FLOW_ITEM_TYPE_GENEVE_OPT:\n-\t\toff = rte_flow_conv_copy(buf, data, size,\n-\t\t\t\t\t rte_flow_desc_item, item->type);\n-\t\tspec.geneve_opt = item->spec;\n-\t\tsrc.geneve_opt = data;\n-\t\tdst.geneve_opt = buf;\n-\t\ttmp = spec.geneve_opt->option_len << 2;\n-\t\tif (size > 0 && src.geneve_opt->data) {\n-\t\t\tdeep_src = (void *)((uintptr_t)(dst.geneve_opt + 1));\n-\t\t\tdst.geneve_opt->data = rte_memcpy(deep_src,\n-\t\t\t\t\t\t\t  src.geneve_opt->data,\n-\t\t\t\t\t\t\t  tmp);\n-\t\t}\n-\t\toff += tmp;\n-\t\tbreak;\n \tdefault:\n \t\toff = rte_flow_conv_copy(buf, data, size,\n \t\t\t\t\t rte_flow_desc_item, item->type);\ndiff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h\nindex 6e8ab1d4c7..0ccb7562bd 100644\n--- a/lib/ethdev/rte_flow.h\n+++ b/lib/ethdev/rte_flow.h\n@@ -1876,7 +1876,8 @@ struct rte_flow_item_geneve_opt {\n \trte_be16_t option_class;\n \tuint8_t option_type;\n \tuint8_t option_len;\n-\tuint32_t *data;\n+\trte_be32_t *data;\n+\tuint8_t data_array_size;\n };\n \n /** Default mask for RTE_FLOW_ITEM_TYPE_GENEVE_OPT. */\n",
    "prefixes": [
        "RFC",
        "2/2"
    ]
}