From patchwork Mon Feb 6 03:39:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rongwei Liu X-Patchwork-Id: 123069 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id 182BF41BE4; Mon, 6 Feb 2023 04:39:41 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 31ED842D0D; Mon, 6 Feb 2023 04:39:39 +0100 (CET) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2078.outbound.protection.outlook.com [40.107.223.78]) by mails.dpdk.org (Postfix) with ESMTP id 3AAB542C24 for ; Mon, 6 Feb 2023 04:39:37 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=N3YiG6+tO/tpEvnaHFdBFUX1stH185G69MyGhbGmb7jhykt6W/eWaZztBg2v70hnSDpSvFU+EfNF5z7KkGA2oWFTYx9LI3LjEHf+B8Iz6Z5G6Ks7idUx0uMZfSvnz3mFAGm2dF05XOu/hDDzwDZKJymjzQRSK+6T+tIr6K4zeCBU6U4xpWk5a1ZFgkwQzC2zlGF9xTS7XZ1S4zvkY+AVZJlHOCRDL0CQ2DhDb+piJc+OXiu+5fSKpwEJrwLfZsWfAPApf9RZKD2f83oiz42Oq1kIVP0/NrLtci9Y5te0zqcpDUcG+ABaL59lt/gfBUE+vFGNm1Z/hmHpxa7LX8AhWg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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; bh=zjcBBN9JnjnVL++Y6uGtR2606yzc6aIQEtoD/PCHMY0=; b=UajHp8HmSqCRy7VfXVz5fzWhPRCEjm706YwY/+yhYkGFkn09eIcRcY1EnST1c0rCwupL0LQlC9rXMZqw1TmKo84ToPh1+CR+a3bOu4L9lhawsEdouoy0YW8Nx+prXdUrrkXkmweSQc7+nJTUSjSylLyqUrZzd0dz+ta4T8k+M5Xg7IESw2VXxMTUGtLIkGLxWEYKWbHgbQx943DaTNCzBLgUr2Myv9otIMVfZvTXp3DhyV6yXT5R/SPJ4nABPE5Hn2b0L/yNnFRajxadU2QiIpEHCwMN4jgLvMdcoPmPuWq3yPVhCPBVQ5heqJLQhNJEGgIUv6nALuDg12BNoaGl0g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zjcBBN9JnjnVL++Y6uGtR2606yzc6aIQEtoD/PCHMY0=; b=aFuCROciV2Xdrt/AdOJsA4THQh4xduvQXSak2bE4Fxs0Znwddje6edmksZYK8vV6HPtcQIaAMrTS5ACkd0ys3vGvdlEnHP6qIEISajp2cKIXdVaUmPxpa2if6Q7Td2Uw2JUjorBXHqGe34sanjMzH/900MAFR3sgrBSGw2yovHk6u0RC4Pn7gzr+ylwo03/9L5RdnEUwUquey+OeOwN1oX7z7GDLVxUQm4G5mLS/B30uIlwYn4A40UOPj34IWoJT2H1z+tVBBS62HUM7EiDTiaTXXs/TSMZS/3IbsthHkWQ8mJkCFjCtVaFPNG1Zy+wDNzWvwfaLJ+ZEdooYUX6M1w== Received: from DS7PR03CA0141.namprd03.prod.outlook.com (2603:10b6:5:3b4::26) by DM4PR12MB5184.namprd12.prod.outlook.com (2603:10b6:5:397::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.34; Mon, 6 Feb 2023 03:39:34 +0000 Received: from DS1PEPF0000E650.namprd02.prod.outlook.com (2603:10b6:5:3b4:cafe::30) by DS7PR03CA0141.outlook.office365.com (2603:10b6:5:3b4::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.32 via Frontend Transport; Mon, 6 Feb 2023 03:39:34 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by DS1PEPF0000E650.mail.protection.outlook.com (10.167.18.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.21 via Frontend Transport; Mon, 6 Feb 2023 03:39:33 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Sun, 5 Feb 2023 19:39:28 -0800 Received: from nvidia.com (10.126.230.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Sun, 5 Feb 2023 19:39:24 -0800 From: Rongwei Liu To: , , , , CC: , Aman Singh , Yuying Zhang , Ferruh Yigit , "Andrew Rybchenko" Subject: [PATCH v4 1/4] ethdev: add flex item modify field support Date: Mon, 6 Feb 2023 05:39:05 +0200 Message-ID: <20230206033908.2770135-2-rongweil@nvidia.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20230206033908.2770135-1-rongweil@nvidia.com> References: <20230130132000.1715473-2-rongweil@nvidia.com> <20230206033908.2770135-1-rongweil@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.230.37] X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS1PEPF0000E650:EE_|DM4PR12MB5184:EE_ X-MS-Office365-Filtering-Correlation-Id: 4126b7e1-15b0-431b-8e5a-08db07f3c374 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: dLfV4gF/sZJLuHWmsr5g9ga4GBPgtL+t7Pu+B9RapUNwoGfGAkmyrA0BZz/QXriJvDDsa60G8kEZckv31zQXqWkD0briAofN9/HnH1eEiGHEEDC1OuvlLAgLm56e/pQFJ5jhjts05P/KJMg5sc76fCHuXT/sD4Ecj+JP5DJXfkhDZqBz6/m2WTBFHPC2VQYP3mHsCVKbO+jkrz4EpENvExjPXoM1hrhT9RIvVDGTsi0S2qX/yw+kmLYJHt5AnBae/WBoHcrC1Rc754rW6p5Mz4YziLbrGu54uGL4cQfFp1jqfrPPsEIDGOHa9BbtAQuDNZPsv7cFCA6MEvDXJ+4KTfCAYQsMtCx5xUhtGwcswHt0XmuRstyKfeLTwUQ8sjczjq8sGka11UotSvCb73oH8VvQJfgI1/SuLYY61E0nZgHG6MPojggRi6TLMZUIZ56LZ0V1oZd8btr4fjIJjlY+mwE0scvUxjFDAzLa/K6/aRtAPY4fknL6C3ADiy7LM9U1/0Gf8p7r+H0Q2H0Em0IG5i5PXlLANTg7e5Oej73uwnZ5U8P5rQ4m7SLtcBv/MbBCd/xqjAGmAo2DtzvZWLTKBJMwC8pNLE8KHS4fTQyf+ixkMXlE/L0QMacwPwa8HCP1blKZgVuCBKSaR0r4PzFUxUBuLgcZK7iLiRUZ/qp/VsWyS6teNk6RKdS/0l8x1kQs9KupOz100fL034RoOZ8tQBAaWJkZJNcxt4tjT5MFdCI= X-Forefront-Antispam-Report: CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE; SFS:(13230025)(4636009)(346002)(136003)(376002)(39860400002)(396003)(451199018)(36840700001)(46966006)(40470700004)(186003)(16526019)(36756003)(1076003)(6286002)(6666004)(40460700003)(26005)(82310400005)(356005)(47076005)(7636003)(82740400003)(54906003)(316002)(110136005)(36860700001)(8936002)(40480700001)(55016003)(5660300002)(41300700001)(2906002)(30864003)(7696005)(336012)(83380400001)(426003)(8676002)(4326008)(70206006)(70586007)(2616005)(86362001)(478600001)(21314003); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2023 03:39:33.9293 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4126b7e1-15b0-431b-8e5a-08db07f3c374 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DS1PEPF0000E650.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5184 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Add flex item as modify field destination. Add "struct rte_flow_item_flex_handle *flex_handle" into "struct rte_flow_action_modify_data" as union with existed "level" member. This new member is dedicated for modifying flex item. Add flex item modify field cmdline support. Now user can use testpmd cli to specify which flex item to be modified, either source or destination. Syntax is as below: modify_field op set dst_type flex_item dst_level 0 dst_offset 16 src_type value src_value 0x123456781020 width 8 Signed-off-by: Rongwei Liu Acked-by: Ori Kam --- app/test-pmd/cmdline_flow.c | 89 ++++++++++++++++++++++++-- doc/guides/prog_guide/rte_flow.rst | 41 +++++++----- doc/guides/rel_notes/release_23_03.rst | 4 ++ lib/ethdev/rte_flow.h | 8 ++- 4 files changed, 116 insertions(+), 26 deletions(-) diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c index 88108498e0..7c12d63cbc 100644 --- a/app/test-pmd/cmdline_flow.c +++ b/app/test-pmd/cmdline_flow.c @@ -601,10 +601,12 @@ enum index { ACTION_MODIFY_FIELD_DST_TYPE, ACTION_MODIFY_FIELD_DST_TYPE_VALUE, ACTION_MODIFY_FIELD_DST_LEVEL, + ACTION_MODIFY_FIELD_DST_LEVEL_VALUE, ACTION_MODIFY_FIELD_DST_OFFSET, ACTION_MODIFY_FIELD_SRC_TYPE, ACTION_MODIFY_FIELD_SRC_TYPE_VALUE, ACTION_MODIFY_FIELD_SRC_LEVEL, + ACTION_MODIFY_FIELD_SRC_LEVEL_VALUE, ACTION_MODIFY_FIELD_SRC_OFFSET, ACTION_MODIFY_FIELD_SRC_VALUE, ACTION_MODIFY_FIELD_SRC_POINTER, @@ -807,7 +809,8 @@ static const char *const modify_field_ids[] = { "udp_port_src", "udp_port_dst", "vxlan_vni", "geneve_vni", "gtp_teid", "tag", "mark", "meta", "pointer", "value", - "ipv4_ecn", "ipv6_ecn", "gtp_psc_qfi", "meter_color", NULL + "ipv4_ecn", "ipv6_ecn", "gtp_psc_qfi", "meter_color", + "flex_item", NULL }; static const char *const meter_colors[] = { @@ -2282,6 +2285,10 @@ parse_vc_modify_field_id(struct context *ctx, const struct token *token, const char *str, unsigned int len, void *buf, unsigned int size); static int +parse_vc_modify_field_level(struct context *ctx, const struct token *token, + const char *str, unsigned int len, void *buf, + unsigned int size); +static int parse_vc_action_conntrack_update(struct context *ctx, const struct token *token, const char *str, unsigned int len, void *buf, unsigned int size); @@ -5976,11 +5983,15 @@ static const struct token token_list[] = { .name = "dst_level", .help = "destination field level", .next = NEXT(action_modify_field_dst, - NEXT_ENTRY(COMMON_UNSIGNED)), - .args = ARGS(ARGS_ENTRY(struct rte_flow_action_modify_field, - dst.level)), + NEXT_ENTRY(ACTION_MODIFY_FIELD_DST_LEVEL_VALUE)), .call = parse_vc_conf, }, + [ACTION_MODIFY_FIELD_DST_LEVEL_VALUE] = { + .name = "{dst_level}", + .help = "destination field level value", + .call = parse_vc_modify_field_level, + .comp = comp_none, + }, [ACTION_MODIFY_FIELD_DST_OFFSET] = { .name = "dst_offset", .help = "destination field bit offset", @@ -6007,11 +6018,15 @@ static const struct token token_list[] = { .name = "src_level", .help = "source field level", .next = NEXT(action_modify_field_src, - NEXT_ENTRY(COMMON_UNSIGNED)), - .args = ARGS(ARGS_ENTRY(struct rte_flow_action_modify_field, - src.level)), + NEXT_ENTRY(ACTION_MODIFY_FIELD_SRC_LEVEL_VALUE)), .call = parse_vc_conf, }, + [ACTION_MODIFY_FIELD_SRC_LEVEL_VALUE] = { + .name = "{src_level}", + .help = "source field level value", + .call = parse_vc_modify_field_level, + .comp = comp_none, + }, [ACTION_MODIFY_FIELD_SRC_OFFSET] = { .name = "src_offset", .help = "source field bit offset", @@ -8477,6 +8492,66 @@ parse_vc_modify_field_id(struct context *ctx, const struct token *token, return len; } +/** Parse level for modify_field command. */ +static int +parse_vc_modify_field_level(struct context *ctx, const struct token *token, + const char *str, unsigned int len, void *buf, + unsigned int size) +{ + struct rte_flow_action_modify_field *action; + struct flex_item *fp; + uint32_t val; + struct buffer *out = buf; + char *end; + + (void)token; + (void)size; + if (ctx->curr != ACTION_MODIFY_FIELD_DST_LEVEL_VALUE && + ctx->curr != ACTION_MODIFY_FIELD_SRC_LEVEL_VALUE) + return -1; + if (!ctx->object) + return len; + action = ctx->object; + errno = 0; + val = strtoumax(str, &end, 0); + if (errno || (size_t)(end - str) != len) + return -1; + /* No need to validate action template mask value */ + if (out->args.vc.masks) { + if (ctx->curr == ACTION_MODIFY_FIELD_DST_LEVEL_VALUE) + action->dst.level = val; + else + action->src.level = val; + return len; + } + if ((ctx->curr == ACTION_MODIFY_FIELD_DST_LEVEL_VALUE && + action->dst.field == RTE_FLOW_FIELD_FLEX_ITEM) || + (ctx->curr == ACTION_MODIFY_FIELD_SRC_LEVEL_VALUE && + action->src.field == RTE_FLOW_FIELD_FLEX_ITEM)) { + if (val >= FLEX_MAX_PARSERS_NUM) { + printf("Bad flex item handle\n"); + return -1; + } + fp = flex_items[ctx->port][val]; + if (!fp) { + printf("Bad flex item handle\n"); + return -1; + } + } + if (ctx->curr == ACTION_MODIFY_FIELD_DST_LEVEL_VALUE) { + if (action->dst.field != RTE_FLOW_FIELD_FLEX_ITEM) + action->dst.level = val; + else + action->dst.flex_handle = fp->flex_handle; + } else if (ctx->curr == ACTION_MODIFY_FIELD_SRC_LEVEL_VALUE) { + if (action->src.field != RTE_FLOW_FIELD_FLEX_ITEM) + action->src.level = val; + else + action->src.flex_handle = fp->flex_handle; + } + return len; +} + /** Parse the conntrack update, not a rte_flow_action. */ static int parse_vc_action_conntrack_update(struct context *ctx, const struct token *token, diff --git a/doc/guides/prog_guide/rte_flow.rst b/doc/guides/prog_guide/rte_flow.rst index 3e6242803d..9ffd7baa7a 100644 --- a/doc/guides/prog_guide/rte_flow.rst +++ b/doc/guides/prog_guide/rte_flow.rst @@ -2905,6 +2905,9 @@ encapsulation level, from outermost to innermost (lower to higher values). For the tag array (in case of multiple tags are supported and present) ``level`` translates directly into the array index. +``flex_handle`` is used to specify the flex item pointer which is being +modified. ``flex_handle`` and ``level`` are mutually exclusive. + ``offset`` specifies the number of bits to skip from a field's start. That allows performing a partial copy of the needed part or to divide a big packet field into multiple smaller fields. Alternatively, ``offset`` allows @@ -2952,23 +2955,27 @@ value as sequence of bytes {xxx, xxx, 0x85, xxx, xxx, xxx}. .. table:: destination/source field definition - +---------------+----------------------------------------------------------+ - | Field | Value | - +===============+==========================================================+ - | ``field`` | ID: packet field, mark, meta, tag, immediate, pointer | - +---------------+----------------------------------------------------------+ - | ``level`` | encapsulation level of a packet field or tag array index | - +---------------+----------------------------------------------------------+ - | ``offset`` | number of bits to skip at the beginning | - +---------------+----------------------------------------------------------+ - | ``value`` | immediate value buffer (source field only, not | - | | applicable to destination) for RTE_FLOW_FIELD_VALUE | - | | field type | - +---------------+----------------------------------------------------------+ - | ``pvalue`` | pointer to immediate value data (source field only, not | - | | applicable to destination) for RTE_FLOW_FIELD_POINTER | - | | field type | - +---------------+----------------------------------------------------------+ + +-----------------+----------------------------------------------------------+ + | Field | Value | + +=================+==========================================================+ + | ``field`` | ID: packet field, mark, meta, tag, immediate, pointer | + +-----------------+----------------------------------------------------------+ + | ``level`` | encapsulation level of a packet field or tag array index | + +-----------------+----------------------------------------------------------+ + | ``flex_handle`` | flex item handle of a packet field | + +-----------------+----------------------------------------------------------+ + | ``offset`` | number of bits to skip at the beginning | + +-----------------+----------------------------------------------------------+ + | ``value`` | immediate value buffer (source field only, not | + | | applicable to destination) for RTE_FLOW_FIELD_VALUE | + | | field type | + | | This field is only 16 bytes, maybe not big enough for | + | | all NICs' flex item | + +-----------------+----------------------------------------------------------+ + | ``pvalue`` | pointer to immediate value data (source field only, not | + | | applicable to destination) for RTE_FLOW_FIELD_POINTER | + | | field type | + +-----------------+----------------------------------------------------------+ Action: ``CONNTRACK`` ^^^^^^^^^^^^^^^^^^^^^ diff --git a/doc/guides/rel_notes/release_23_03.rst b/doc/guides/rel_notes/release_23_03.rst index c15f6fbb9f..3fb6e738e2 100644 --- a/doc/guides/rel_notes/release_23_03.rst +++ b/doc/guides/rel_notes/release_23_03.rst @@ -69,6 +69,10 @@ New Features ``rte_event_dev_config::nb_single_link_event_port_queues`` parameter required for eth_rx, eth_tx, crypto and timer eventdev adapters. +* ethdev: added a new field: + + - modify flex item: ``rte_flow_action_modify_data.flex_handle``. + Removed Items ------------- diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h index b60987db4b..ba9f3d50a3 100644 --- a/lib/ethdev/rte_flow.h +++ b/lib/ethdev/rte_flow.h @@ -3528,6 +3528,7 @@ enum rte_flow_field_id { RTE_FLOW_FIELD_IPV6_ECN, /**< IPv6 ECN. */ RTE_FLOW_FIELD_GTP_PSC_QFI, /**< GTP QFI. */ RTE_FLOW_FIELD_METER_COLOR, /**< Meter color marker. */ + RTE_FLOW_FIELD_FLEX_ITEM, /**< Flex item. */ }; /** @@ -3541,8 +3542,11 @@ struct rte_flow_action_modify_data { RTE_STD_C11 union { struct { - /** Encapsulation level or tag index. */ - uint32_t level; + /** Encapsulation level or tag index or flex item handle. */ + union { + uint32_t level; + struct rte_flow_item_flex_handle *flex_handle; + }; /** Number of bits to skip from a field. */ uint32_t offset; }; From patchwork Mon Feb 6 03:39:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rongwei Liu X-Patchwork-Id: 123070 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id 4BD8D41BE4; Mon, 6 Feb 2023 04:39:47 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 67DE942D16; Mon, 6 Feb 2023 04:39:40 +0100 (CET) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2042.outbound.protection.outlook.com [40.107.223.42]) by mails.dpdk.org (Postfix) with ESMTP id 48AD842D0D for ; Mon, 6 Feb 2023 04:39:37 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FOFi5FxEdTLA8Fa4UKdTXh8S9yl0Z0fihl1FIDXRw96p2xz12/qy+REa8qdrCL4pC3gt+k1jo0MjxqvRxfKB/NA+Nf3cWHA9Bet2nc2XPQcOp/FJ+4KzKrQQ8Z3N8NqxTmpZuyfEFENUK7rrdmHA5OKSj2rwutd6t0FMFyHqrBHXZHopG6S/sd+EhRNZnNCvAO4RB/xH3MZmIEczy4o4RFCONB7qD7N8UnzLgrHlrkkORUp3XLG3RtqQrWj3h3rwEW0HLpsr8QRVeGGZcgrYxXcIx4MCKt/Oc4FTX0TpdrFFPv9S/FI0OViHMQ6BB2IGlD7zmb1DkNr+RYKtBHpSmg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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; bh=R92sgD9fuu6XKyqfcvTbaGf1Z1QOtJOFTYpHXtVkzlE=; b=Xzzm5VAxsyHUcwKsVkrWJ3PtrLGdjRSn7VtAiHMp/7IHY5xuz1hxrUZKoiNrnS+XZC88sWFfuEW0Fn/hDk7lZBx6nR6rbbcb99NsqWEMXuZuZyi+T/Cn6k1n7lMqr53mVXP/QZS03uhanXOF1hTAI9IWeIAD+gGe9X0UG3UKUQsmLaA7ssmXqCX6NFOCJly+ZKNxdJZ2v6vGtoyuKAswAOdh70l6wlUN9O0MANG5+qR7CL2dSOikkivRH/Y4RjwaZIPzYQJgHiu3PMqKOrAr26EWwyWpYtVbOcGipZhjRYAHEwhyev/eaThtwVHol/tbrJsuQMT8XQBmSwCZpoWSvg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=R92sgD9fuu6XKyqfcvTbaGf1Z1QOtJOFTYpHXtVkzlE=; b=X+tmx9OlUVdd1BRaXVuV0/pVGiy++yqgACud8mgfLxOFU+j8mGEa5RcO1Q+wQrfu2N9T264vq8XnjsoSetUZG+i25Syeyx999KJ6uhiPUuBzAmnrn5VDjQMhHlcwbV+NXW40z2NPrKHchV8Ve1Lx667vx0KFjpapk480glJrA9BcB5xoocze5TL4wNEEmdC3O0hicTjT2mhAVcMO9Byv0jxc+oeNrd0JkG+QqNP0LOb63UKs7gAmVy0hgo8XUnAzGIv9hMGj1mxCEFrI3vMcuA44qq9cz+RQ4JGyBP6RyTICxiVfY1TGCATbJI2/eYREoGnaSWFmHvhhghCHyFFDZA== Received: from MW4PR03CA0244.namprd03.prod.outlook.com (2603:10b6:303:b4::9) by SJ0PR12MB5406.namprd12.prod.outlook.com (2603:10b6:a03:3ae::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.34; Mon, 6 Feb 2023 03:39:35 +0000 Received: from CO1NAM11FT031.eop-nam11.prod.protection.outlook.com (2603:10b6:303:b4:cafe::56) by MW4PR03CA0244.outlook.office365.com (2603:10b6:303:b4::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.34 via Frontend Transport; Mon, 6 Feb 2023 03:39:35 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CO1NAM11FT031.mail.protection.outlook.com (10.13.174.118) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.34 via Frontend Transport; Mon, 6 Feb 2023 03:39:35 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Sun, 5 Feb 2023 19:39:31 -0800 Received: from nvidia.com (10.126.230.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Sun, 5 Feb 2023 19:39:28 -0800 From: Rongwei Liu To: , , , , CC: , Aman Singh , Yuying Zhang Subject: [PATCH v4 2/4] app/testpmd: pass flex handle into matching mask Date: Mon, 6 Feb 2023 05:39:06 +0200 Message-ID: <20230206033908.2770135-3-rongweil@nvidia.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20230206033908.2770135-1-rongweil@nvidia.com> References: <20230130132000.1715473-2-rongweil@nvidia.com> <20230206033908.2770135-1-rongweil@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.230.37] X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1NAM11FT031:EE_|SJ0PR12MB5406:EE_ X-MS-Office365-Filtering-Correlation-Id: 04dbcf37-295f-457f-f5ee-08db07f3c446 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: FSrLw7V9c1ww348wOXd2XAxHwyr7yePe2cQnTAatOR/RassdPg2RLmtpR7ncr+VgNd06HMnlXpdZb01rYPtNlGBUBHfrtqRvULhL1uG1XgKnzQzx26XB3wNEZDzVg27PfBFNkm4++VC8yGqReYOJ+R3rRz1ay+YdIjeFicJinXbA6eebDBGudtbro4GJx/Gsi9intZDq1OG4TQxvq4jJVfjBkP6ago/VDWd3ebZJqEquU7ucrUa2mKJebVt4ROtTbcyhCXlg6YVcPsSRN8Ofp6nvBz2mIW8O7u5EfwK0s0TLN9CVpDWzLHURO2gFysCsREz9QOFYgzLTrOyAjnmLa2kI/XCUgi1tCi86SBMDoGdfLjrLvKZ0NewclOmq7zaWlkcdi8tCN+s+j+fipozV0tIn790yAoLUbsUHBkoXoiUYNQj92Ef0BQSDC7F+YEFAzgiMaoeknKnclC2KmDnUhhF2A2tGmzEyaGmjLNcxISGroVdRARID20dTeM3NIYyEdlZEWsXoZcrjHRO0KF/9FqFRYOSmkkP5hQlLA8uxhCUlYRTrV12J21bjY6w4275x/sIc3GF88HF9p432iWfmKZ/F+VxULZ9+tdLgar9jmWRL4lBVsTDS796PEqaS5YfyQA3jIBe4YZDFsw4NqtDbwTV/JhZOXdpF6REtLpiy5bEey9zBw6/aqQuGnwmmkz5bAqeKWmg3nUnG+mjGBzzscA== X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230025)(4636009)(39860400002)(396003)(376002)(346002)(136003)(451199018)(40470700004)(36840700001)(46966006)(40460700003)(36756003)(7696005)(54906003)(110136005)(316002)(6666004)(1076003)(8676002)(478600001)(5660300002)(2906002)(4326008)(70586007)(70206006)(41300700001)(8936002)(26005)(82740400003)(7636003)(36860700001)(356005)(55016003)(40480700001)(86362001)(426003)(83380400001)(336012)(6286002)(16526019)(186003)(2616005)(82310400005)(47076005); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2023 03:39:35.2926 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 04dbcf37-295f-457f-f5ee-08db07f3c446 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1NAM11FT031.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB5406 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org In async flow create API, there is only mask information when creating flow table but flex item handle is required to parse the HW sample information. Pass the flex item handle instead of UINT64/32_MAX to mask. Signed-off-by: Rongwei Liu Acked-by: Ori Kam --- app/test-pmd/cmdline_flow.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c index 7c12d63cbc..9037432cc8 100644 --- a/app/test-pmd/cmdline_flow.c +++ b/app/test-pmd/cmdline_flow.c @@ -10068,8 +10068,8 @@ parse_flex_handle(struct context *ctx, const struct token *token, } if (offset == offsetof(struct rte_flow_item_flex, handle)) { const struct flex_item *fp; - struct rte_flow_item_flex *item_flex = ctx->object; - handle = (uint16_t)(uintptr_t)item_flex->handle; + spec = ctx->object; + handle = (uint16_t)(uintptr_t)spec->handle; if (handle >= FLEX_MAX_PARSERS_NUM) { printf("Bad flex item handle\n"); return -1; @@ -10079,7 +10079,9 @@ parse_flex_handle(struct context *ctx, const struct token *token, printf("Bad flex item handle\n"); return -1; } - item_flex->handle = fp->flex_handle; + spec->handle = fp->flex_handle; + mask = spec + 2; /* spec, last, mask */ + mask->handle = fp->flex_handle; } else if (offset == offsetof(struct rte_flow_item_flex, pattern)) { handle = (uint16_t)(uintptr_t) ((struct rte_flow_item_flex *)ctx->object)->pattern; From patchwork Mon Feb 6 03:39:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rongwei Liu X-Patchwork-Id: 123071 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id 192E241BE4; Mon, 6 Feb 2023 04:39:55 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 121AF42D32; Mon, 6 Feb 2023 04:39:44 +0100 (CET) Received: from NAM02-DM3-obe.outbound.protection.outlook.com (mail-dm3nam02on2041.outbound.protection.outlook.com [40.107.95.41]) by mails.dpdk.org (Postfix) with ESMTP id 0171D42D32 for ; Mon, 6 Feb 2023 04:39:43 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=byFTc3jjET07nChBXJ49p/rvr8f+C4b41X5YKzMjZ+KnZJ6D35YiDmJwAnPCMjGADd33/CjH41LwMlbLTyEyuejhAGPvxY6uVjvQyL5hsFSLFnP5pNrnYOTRSZqKuY5sT5q990qrQDHnB+9kdqSfQJj5M7ZkeEQ2NwentQx0nrRoWL0IgUlZ6Fo6LT0J4dEKav9iyyr1oNM+6TihOYqgaznfgL5mwQH5j13xOb+Az/g4zLy8JQfoWLSDzsd+Sq2LwnrEGCnkiF2EJt0htWHQ9yxRQsafBWnbbJ877oj20E4BCNJFiT+cw4FDsXLfzA5J6p9tjrKt/XeIbmMwo+GwPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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; bh=8UnuhICc1dx5/OUzGM8OVhCHsUgATrf5Onl9BdruQ0M=; b=JD+xgzs2+DzsaIt1VbycChgbm8k6eeerteM76lUnHIgmoCCsjEy3g4kBu16s1KgZx5XVq6rIEIi6L4SzOTDrZn/sf6r7TVrdbBSRu23mHRSyvJb2U3FBKghuAs4Vu2kwviJat/4Uz9oJI10dzdsvRVa2BBQgA6t3TtE3ZRFDePg1XaaDwBztW12f14h17w/yPE2XczwJbOq0IX/3z2q9E4D+K2fiCJX9xX2Clg+T8ictojeeSEZ9WTYbc0bTQnBmv0SNAnKIMkIEsrjHwcxeb21etjqsKuxQJngWAfA81r3drc0Fi2Z7zig5kF3OYH/fXRLtGsu0CRRLdUK2xiFMzw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8UnuhICc1dx5/OUzGM8OVhCHsUgATrf5Onl9BdruQ0M=; b=Q8YR9iY33NLY4uAzRjvA37dBDEX766W75zmQdtxu4jbmgiExzh0sulcaTP2P3ipP6WbrALc9ce8E/Y3ZBBVjPbR0njYfRVdc1Rq1F7KrnODtNSyPTOQY9wbw0Lc2udisDLm0xFyw95RWFOi90RIiSe0VhyH6NgIy/lECGeUb6mv1T1fDtHEBaIH/QmZxb9R50TRw0QOHkZQt1HLqSOGvBy35qfWX+0GetGbYbyt53Yp7/XbH20c2z+9fwRI15YH5cRJjwJ6DauxvhgmFQ4eIna2+cQqN6iziklWY4kThp8BQ99B0xh65fM4jzLoQhA1k+xPdhr1ENXwZFWowOtdlfw== Received: from MW2PR16CA0022.namprd16.prod.outlook.com (2603:10b6:907::35) by CY5PR12MB6276.namprd12.prod.outlook.com (2603:10b6:930:f::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.34; Mon, 6 Feb 2023 03:39:40 +0000 Received: from CO1NAM11FT005.eop-nam11.prod.protection.outlook.com (2603:10b6:907:0:cafe::b9) by MW2PR16CA0022.outlook.office365.com (2603:10b6:907::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.34 via Frontend Transport; Mon, 6 Feb 2023 03:39:40 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CO1NAM11FT005.mail.protection.outlook.com (10.13.174.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.34 via Frontend Transport; Mon, 6 Feb 2023 03:39:40 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Sun, 5 Feb 2023 19:39:34 -0800 Received: from nvidia.com (10.126.230.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Sun, 5 Feb 2023 19:39:31 -0800 From: Rongwei Liu To: , , , , CC: , Aman Singh , Yuying Zhang Subject: [PATCH v4 3/4] app/testpmd: raw encap with flex item support Date: Mon, 6 Feb 2023 05:39:07 +0200 Message-ID: <20230206033908.2770135-4-rongweil@nvidia.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20230206033908.2770135-1-rongweil@nvidia.com> References: <20230130132000.1715473-2-rongweil@nvidia.com> <20230206033908.2770135-1-rongweil@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.230.37] X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1NAM11FT005:EE_|CY5PR12MB6276:EE_ X-MS-Office365-Filtering-Correlation-Id: 533a30c3-0645-4cca-7d6a-08db07f3c726 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: Ys49OMPDZauEnjLop9LF/JXKGNm0Q3gyba1F8vUYvbBj7iRtzVUC54m9Eo0SLOWNUiipFWL2FBREUd4sjmx4f6O9quzOQ8d55Og6kUj1JJqYbOfnSguwoogrNFR14vQiRxJUa+mMOixMihpWa3Qk3fHxMsuuideARHDysFte6zygB2wDMPxhhb4BZ2TKaZJXRD0gbwdjEWO9qBVZ6COOa3PSdXRaBWIGOLtNNpILeaBRosvWHPfulYxZbIzHFOFwTNPktK/TwUjQid/GdYgqGcdCjmIIO3FMA+suTK5psZobaUJ27pQ3t4SnDpwMVtbkYb0ypPutqbgeo2tGHt7FNTDZoBjvTSIRjqcofFjImorrMJkcYn34fTAuCwH0r3bjgIz7jkYFNR23nhpi1VmzonVtiPcFgHpgzGWC1eIGt+pS11k+DjxR6pUOVMoDhdcnGsH3KRi1P9OKF9Wx/tC5kfI65uhytv0ol+GE4sxsWmXUbaofWRdtTv0fzpM91JvnD79Ti78MV+W1kivnXhMLEp3IkT2d01Yq/CyRR1oOTM+x7McolVVvCEqNqXW7WkfHITfwqc4AlqBgpvc059ZBHW4lyKkARvJC0j0ZZ5JB6eMOGSTQ/iwnfLKgr8+NiNYQTKDzbNkffbG8u8VBCrels49bNk3dTY4ZIOcsifK8lwVVcnJrEuzfzVnIWaIbLg2hN47x4HFzS/l8kQ+DGHXcpg== X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230025)(4636009)(396003)(376002)(136003)(346002)(39860400002)(451199018)(36840700001)(46966006)(40470700004)(8936002)(41300700001)(5660300002)(4326008)(8676002)(70586007)(70206006)(2906002)(7636003)(54906003)(316002)(110136005)(86362001)(36756003)(7696005)(1076003)(6666004)(356005)(478600001)(82740400003)(26005)(40460700003)(47076005)(426003)(336012)(2616005)(16526019)(6286002)(186003)(55016003)(40480700001)(83380400001)(36860700001)(82310400005); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2023 03:39:40.1130 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 533a30c3-0645-4cca-7d6a-08db07f3c726 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1NAM11FT005.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6276 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Application should retrieve raw_encap buffer from spec->pattern if it is flex item. Signed-off-by: Rongwei Liu Acked-by: Ori Kam --- app/test-pmd/cmdline_flow.c | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c index 9037432cc8..3b2975ee83 100644 --- a/app/test-pmd/cmdline_flow.c +++ b/app/test-pmd/cmdline_flow.c @@ -11193,6 +11193,7 @@ cmd_set_raw_parsed(const struct buffer *in) uint16_t proto = 0; uint16_t idx = in->port; /* We borrow port field as index */ int gtp_psc = -1; /* GTP PSC option index. */ + const void *src_spec; if (in->command == SET_SAMPLE_ACTIONS) return cmd_set_raw_parsed_sample(in); @@ -11216,6 +11217,7 @@ cmd_set_raw_parsed(const struct buffer *in) item = in->args.vc.pattern + i; if (item->spec == NULL) item->spec = flow_item_default_mask(item); + src_spec = item->spec; switch (item->type) { case RTE_FLOW_ITEM_TYPE_ETH: size = sizeof(struct rte_ether_hdr); @@ -11343,9 +11345,13 @@ cmd_set_raw_parsed(const struct buffer *in) size = sizeof(struct rte_flow_item_pfcp); break; case RTE_FLOW_ITEM_TYPE_FLEX: - size = item->spec ? - ((const struct rte_flow_item_flex *) - item->spec)->length : 0; + if (item->spec != NULL) { + size = ((const struct rte_flow_item_flex *)item->spec)->length; + src_spec = ((const struct rte_flow_item_flex *)item->spec)->pattern; + } else { + size = 0; + src_spec = NULL; + } break; case RTE_FLOW_ITEM_TYPE_GRE_OPTION: size = 0; @@ -11378,12 +11384,14 @@ cmd_set_raw_parsed(const struct buffer *in) fprintf(stderr, "Error - Not supported item\n"); goto error; } - *total_size += size; - rte_memcpy(data_tail - (*total_size), item->spec, size); - /* update some fields which cannot be set by cmdline */ - update_fields((data_tail - (*total_size)), item, - upper_layer); - upper_layer = proto; + if (size) { + *total_size += size; + rte_memcpy(data_tail - (*total_size), src_spec, size); + /* update some fields which cannot be set by cmdline */ + update_fields((data_tail - (*total_size)), item, + upper_layer); + upper_layer = proto; + } } if (verbose_level & 0x1) printf("total data size is %zu\n", (*total_size)); From patchwork Mon Feb 6 03:39:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rongwei Liu X-Patchwork-Id: 123072 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id 5725141BE4; Mon, 6 Feb 2023 04:40:00 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4C55042D38; Mon, 6 Feb 2023 04:39:49 +0100 (CET) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2048.outbound.protection.outlook.com [40.107.223.48]) by mails.dpdk.org (Postfix) with ESMTP id 8D9CD42D2D for ; Mon, 6 Feb 2023 04:39:47 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=h732dbL8PhT0UadReVEnFEnmMsaUQsHxGtvVuR/mJuwNyIL0Cxzzfv2MBU7JRyOnwXuertWWZof67LZ2bYQ/Cs7KvNuXqRfR6ZICOF1vkm6/Ok88lem5F2jQjTXPWjk+W4N7qH4zoVo7HxC4dJapkHw/urIcMNmgOMbFaEh8I0RpIN0RA3PuKlifuzKNZNSkYR9xnmft0LA7r8G5C9/rkFMZc+d+6pZLAqlzFLDooEuy99SiXgzjayjeYfzhzRaYLIcVriAjykrwG0QxlNFKdWZ1Cryg2WZqaJ/I81yeGAdudBkoUehFslOKSQYbilPFtdKKnx7/VbgWF9MXIz+xeg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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; bh=byHkeKIQQxZskIg5q7J+FTgbyB4NOnRaIjYVjOxQGWk=; b=KbOlcfygRPFp/rxSE9dFRZZ1bHtsSPqzfAW8gS+kqdzZNYU4DmKzI/hPm3fwKOKJZ9w4OT8sQ+i+RKTX4oQu9ehz9aRD6QeCiuvQ/SgFvnh/ZpVIW7iZ3f6ZR2CvzGmCJLs+TVT1ETP3K6WI2B3iSdD+ZfuAeYWS+7p1lNcPMWenfko3msaWLaAQ8SJR8b0Y7QIbkoDHOee/bFXDUNfjjC/CNuDdooEC+e0r/mge1K/hSdbb2Pmm+w/ri/eIxtzCH1iDniq4D+kyBDV3FuVVmKnRla0SQfz2GisdDQY9g8kh1YWyE8+Q3azof00NpFJMAIjmm1dbUAPzA44eyV0GAw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=byHkeKIQQxZskIg5q7J+FTgbyB4NOnRaIjYVjOxQGWk=; b=Qev+2QWSHsN+0sPcPRAS5P5dmppoIAWNvgjM+CnhhZNWnBzP0VW2oNyUoChMtW6n1yltRi+XDQy2UFoefavrE1cgXOb5nTb/X1ESYPYSzASWyQGzLwBicz3ZzIPdwPmMs/yTNd2MDGtcgynyK7SLb3kt0m+Z05h0rS5hpThhESAEBNFD9zubvQB+AFrebI5WQ7PMJP0fgaxbgFmWeHacMKZRA3CkmW0edc2YYq8/WJbcLxvEMmGn73zlWL3+d50lS9JNQ26Aq+qlrPwMVZN5rQ5sbq7w64wIfYE+w8a4tSkoxef7pRRl4z1wtn4OW4asXBY+UGY2KvTtbE1gkdORog== Received: from MW2PR16CA0005.namprd16.prod.outlook.com (2603:10b6:907::18) by DM4PR12MB6592.namprd12.prod.outlook.com (2603:10b6:8:8a::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.31; Mon, 6 Feb 2023 03:39:44 +0000 Received: from CO1NAM11FT005.eop-nam11.prod.protection.outlook.com (2603:10b6:907:0:cafe::74) by MW2PR16CA0005.outlook.office365.com (2603:10b6:907::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.34 via Frontend Transport; Mon, 6 Feb 2023 03:39:44 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CO1NAM11FT005.mail.protection.outlook.com (10.13.174.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.34 via Frontend Transport; Mon, 6 Feb 2023 03:39:43 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Sun, 5 Feb 2023 19:39:37 -0800 Received: from nvidia.com (10.126.230.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Sun, 5 Feb 2023 19:39:34 -0800 From: Rongwei Liu To: , , , , CC: , Aman Singh , Yuying Zhang Subject: [PATCH v4 4/4] app/testpmd: adjust cleanup sequence when quitting Date: Mon, 6 Feb 2023 05:39:08 +0200 Message-ID: <20230206033908.2770135-5-rongweil@nvidia.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20230206033908.2770135-1-rongweil@nvidia.com> References: <20230130132000.1715473-2-rongweil@nvidia.com> <20230206033908.2770135-1-rongweil@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.230.37] X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1NAM11FT005:EE_|DM4PR12MB6592:EE_ X-MS-Office365-Filtering-Correlation-Id: 325e0686-ac74-44ee-a728-08db07f3c962 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: RdbCNSQU3762F0s38nTHt5VXbvGiM8zqB13iD59u4JI3GBQO3ZE32xksxhJJUTZrnV8nJmExQ+z1jRWSIAqZEMKaNKZs1giqr3JGvpXdJeP0eD9qlvW+rZjmvwZ+HRvWJfUr2A8xVjQMu9xVh40eqBdPmKcp6a6R3f/N6zDkop7ciPZxZoortpVo+8yDP1uLRoo7VEGY43vo2ccLHwfftewvoHzs3TwPjeeXazDlpLe6jfngiXr/lykvR1zgQTXjqxlJUFvhAeypXKfOezey+62IyFvWC05jvhiHkwZTzSyKoFa9XuQXTybrXEfVUK+SxI8ipbHkoc0+RepWQFJy1PbWi+9nA+GyXivvBClQ9/b0mj/hmPs+i58C0nurMlmUV6aEOquAp2izkAabfvhra3nTL+NAlYtVHoMRprXsp6O1Gjqb2mPN+g/GA14d4rk0z0t6mvoJrcJcGtK3Erw9lCfBYTfF2oDnhzwzoWKF85W4OGYx0aUYvhMCNU/SgZ9lDBQU5lqqCJmK4RTGfjuRG7BLaPt8e70flTAj0Y0fYjrYkhJcRTV7epp91+ni5INWRPPRhGgoR4xln2syhNuQCz2huBpB3rdvbBxCxXGGWeBD1Rp8H+NSmlCgNvApLLsVvSV9xbISZGuBRM2ClS3ADK2Jdt/yahmfUvDK9PFRp5/vh6mtKxoFhb5Dq5HXyEd3KQWFmefqKw86TCtZxLca7g== X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230025)(4636009)(346002)(39860400002)(136003)(396003)(376002)(451199018)(36840700001)(40470700004)(46966006)(4744005)(82310400005)(8936002)(426003)(36756003)(5660300002)(47076005)(55016003)(1076003)(6666004)(110136005)(356005)(54906003)(316002)(82740400003)(7696005)(7636003)(478600001)(83380400001)(70206006)(336012)(70586007)(2616005)(8676002)(4326008)(86362001)(41300700001)(36860700001)(40460700003)(40480700001)(186003)(26005)(2906002)(6286002)(16526019); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2023 03:39:43.8627 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 325e0686-ac74-44ee-a728-08db07f3c962 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1NAM11FT005.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6592 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org If flex item is referenced in async flow either by pattern template or action template, currently testpmd complains "flex item has flow references". Flex items should be flushed after async flow resources cleanup. Signed-off-by: Rongwei Liu Acked-by: Ori Kam Acked-by: Aman Singh --- app/test-pmd/testpmd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index 134d79a555..e35f7a0e7a 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -3298,10 +3298,10 @@ flush_port_owned_resources(portid_t pi) { mcast_addr_pool_destroy(pi); port_flow_flush(pi); - port_flex_item_flush(pi); port_flow_template_table_flush(pi); port_flow_pattern_template_flush(pi); port_flow_actions_template_flush(pi); + port_flex_item_flush(pi); port_action_handle_flush(pi); }