From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 989464415C; Wed, 5 Jun 2024 10:10:36 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A97E740698; Wed, 5 Jun 2024 10:10:32 +0200 (CEST) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2066.outbound.protection.outlook.com [40.107.223.66]) by mails.dpdk.org (Postfix) with ESMTP id 4428D402DC for ; Wed, 5 Jun 2024 10:10:30 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BwYXRRUMzIcguplcPM8UHwkJCdpnuTwulPpzaD1vNd/9eubmxwmjhMPXqSlkesi7UwAvaYqg6feZBx6NwmQfu5F8Dhrl8Zv/P81mrY4MawITwWz7sN382+fFVohlx5skfPymuNiJAZb6atCTphoF6Pc0K8sfI6wR4wZIsRsan0NsO0nnn0xoSikiBwvt8bewfMxoOJKj6JFoR5f+sXPPAeIBGbcmFUhMyFBQ8olBDp692IVrwiJfjqFDnGXNnGCnOTrqNCX7+319RyYGGqZP6Qy9eOvZjfm7008MdofwdBoTwHeFNl2YElPrRyZkiXTEVl8NxwHrUI87RiV8wk56gA== 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=uw00Cy2x+e1iKvHMFwH0I24NNNa7Jwn5e0Ir+3r1RYE=; b=S/abMqa7f3+WOm6xFxUyCVrXfZlY3+wSoSn+jGU6fG9Q1bk8IQbkXzH4aYmW+e3kDvgMLgYNaVJhR4ba5wX2p86uCRMDEI8D0IWDWPSuCuJFMGOlscMdge+lZrvhRlnfn7Pa1HhiRj36/+A7IPpZ7+T2OFhlpmwmHmcPmwrCoozAqsm/rD9GXih7gPMwl6fgTeVrav4Pe27vYeliYaHvOhkfxBV9LsPogCHLY3zJ0MVUP+FEt6fv5Jil89RKdwQDByJayIgjYmJL3vcA5Eu6NEmxNtFXqnPoC7g83C+726qwnUy+jChWsiZmTnaAriykN5mlGRgJqTJVg/4A6p6Wyg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=monjalon.net 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 (0) 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=uw00Cy2x+e1iKvHMFwH0I24NNNa7Jwn5e0Ir+3r1RYE=; b=KlJpdfM4g5JM8wEaaHx6/dveJCLlKWjqdCY7sJZB2VnnqXjiz8pEPDwOsDt65qMICPD8Vwhui99hcYfggSkO2cSnNISW6GmTwuE2QMxK3Kk77nmFH0rOK1HV8KNW7/Ts2OQlns5kgHXMNjEmjhnVkaW8KOQu6ZNlV+r60WVpJwFDrAYLfNdPosq779kIT7fK0iXb1X3vuE7MULpV4wZ2p2QL0ttrLhk0c6N3TPQqIcpqDZ+G3cHZX1qJbb44pNDI6nEjYZAdUOHE9u9QLRnL+vn6skW1uec3FT263ZFfHFeObD8OODs/dwZHpYR4nIzE0wMk8dOAWzt/Bz9eafiTww== Received: from CH0PR03CA0046.namprd03.prod.outlook.com (2603:10b6:610:b3::21) by BL1PR12MB5826.namprd12.prod.outlook.com (2603:10b6:208:395::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.22; Wed, 5 Jun 2024 08:10:27 +0000 Received: from CH2PEPF0000013D.namprd02.prod.outlook.com (2603:10b6:610:b3:cafe::55) by CH0PR03CA0046.outlook.office365.com (2603:10b6:610:b3::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.31 via Frontend Transport; Wed, 5 Jun 2024 08:10:27 +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 CH2PEPF0000013D.mail.protection.outlook.com (10.167.244.69) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.15 via Frontend Transport; Wed, 5 Jun 2024 08:10:27 +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.1544.4; Wed, 5 Jun 2024 01:10:16 -0700 Received: from nvidia.com (10.126.230.35) 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.1544.4; Wed, 5 Jun 2024 01:10:13 -0700 From: Gavin Li To: , , , , Aman Singh , Yuying Zhang CC: , Subject: [V3 2/2] app/testpmd: support matching any VXLAN field Date: Wed, 5 Jun 2024 11:09:53 +0300 Message-ID: <20240605080953.534998-3-gavinl@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240605080953.534998-1-gavinl@nvidia.com> References: <20240604062746.355383-2-gavinl@nvidia.com> <20240605080953.534998-1-gavinl@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.126.230.35] X-ClientProxiedBy: rnnvmail201.nvidia.com (10.129.68.8) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PEPF0000013D:EE_|BL1PR12MB5826:EE_ X-MS-Office365-Filtering-Correlation-Id: 24bc36e8-d9c3-47f5-ad67-08dc8536f582 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; ARA:13230031|82310400017|36860700004|376005|1800799015; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?t26g3ARxoQYp7bhQrPOAIlovGQd+jOI6VCIQpoSp/YTVo561yRT4aZFrHeQY?= =?us-ascii?Q?959tuLrti8iPny4Vbmg7dE3vsies31bNNtN2QkmIU4Gcdk+1VOUjStA1a+6t?= =?us-ascii?Q?d94klzdI8HC3MfDzO+clkJ4yPLBvB26KlAufUT29sYjS4gdKziQL6A/073Yv?= =?us-ascii?Q?HHfnxkGhbIA3IF9IaRYfMarvYCGSvYH1Oo6E4FmeUvRZHEl75divFhO3/Pfv?= =?us-ascii?Q?AzJktDEzWhlDPf8Hb/oelr1EtjJoap0i1gDX+K9aWCBsRPea0WRGUU3HskKH?= =?us-ascii?Q?JA1XFZ47OjpYgnzBWle0R8hwdNDzSp8Das6msnG3pTTVsnHUynJ9YVeO2Wuv?= =?us-ascii?Q?aTE2awfWa1qc1opjSqo7OTHaCnPXxIUGKzig4DgkCWBcPrpzdoPCjuoUJaRw?= =?us-ascii?Q?HAUWk0zyjGxq/vESevbUkW3Fu3FgixmHbLHoyIlAj7O21/bbuiqPfHxkduwz?= =?us-ascii?Q?F6gvcOzAqr5MgqjkHo1Vd3yKxJONVHgF5xwMPUd2Z6WEab7s0PkbV3FQAXSW?= =?us-ascii?Q?u3R4Uj5t7wqihcCyROwbEcUQcFrDjnieDF74cxllcyceOr/1xpXE77Wh0Z5b?= =?us-ascii?Q?a7N7Q3LKKOjvILEDOudxWUgZQkgS6OmqS9WYB7mgjg7dMTwspzMDE1xhIYPj?= =?us-ascii?Q?AvbcEnYKBhF0l2ohiWMETM8Xfdl/uVLyOk2jFHpIrgPrYtulgDz+jx2wLo2H?= =?us-ascii?Q?9ZM9MLTqonnNSJPhb+T3177Pmh9q+zH3Y4g+hi2MRM9brH1PiNLFYUHd7DEY?= =?us-ascii?Q?o783BElD6+JDFcDZ7eQjK1r/tUB5DN4dZMQlK4wWAj2NRP6Tj47VEpKaILtq?= =?us-ascii?Q?F69v90B/8aZzxFCQmhZ1gIYFT2X7Ucx7ZvCuhO1q5az3WZfQMysSwXhSCwN0?= =?us-ascii?Q?84aKnPta5jd1CzwHL7IwHWIUOO3wKfr5Bc0hhKkwz0OejUV5Hx9HuQe/eLIo?= =?us-ascii?Q?/yRuvwmNeDm69Cracox+wExtvmaDwJY/9hjNBw4FSdvbw1qcnThOdSaTT9h3?= =?us-ascii?Q?vw8wuTKlLdPPnl1MciUkzgM7JHKGeqHXtBLEhta4eVRNezKdaXCyS8IZ7ZET?= =?us-ascii?Q?woMGUHjchXEeVMoSl/fC9O6Dua9LiYoyrzOP+e2NfN1PSEzD9rgdS259cFyj?= =?us-ascii?Q?Dfpa1QGjf4nMzefXXk258RoCOAtXfkJco1U7Qucer3Gu+TiCnzcTO3Q8xlYh?= =?us-ascii?Q?4os/LxC0v6TvgAb/8JHavHgUziUDgVCJxDyPgx2BD598sWy0Bdua8547X0oX?= =?us-ascii?Q?DHsymOVsC/LbiZfd4htZ6dusRA/drpyxf4YY/nxGnG5ijsABTRLDpfgjS8zX?= =?us-ascii?Q?XO3LsaJ27IJhohkP9d+fb0WGAf2qKfGyBwNEA7UZQQSfCxiLeOQdV70f0Yo6?= =?us-ascii?Q?VyRPWZ1qONC9PCh5+Xe+YDph9YjTCCzQc4ZzBz3Ff8Xqsr9ovQ=3D=3D?= 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:(13230031)(82310400017)(36860700004)(376005)(1800799015); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jun 2024 08:10:27.1915 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 24bc36e8-d9c3-47f5-ad67-08dc8536f582 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: CH2PEPF0000013D.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5826 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 VXLAN extensions (VXLAN-GPE and VXLAN-GBP) are unified in a single VXLAN flow item. It is user responsibility to explicitly match VXLAN-GPE with its UDP port. Below are examples to match standard VXLAN, VXLAN-GPE and VXLAN-GBP. To match standard vxlan, ... / udp dst is 4789 / vxlan ... / ... To match VXLAN-GBP, group policy ID is 4321, ... / udp dst is 4789 / vxlan flag_g is 1 group_policy_id is 4321 ... / ... To match VXLAN-GPE, next protocol is IPv6 ... / udp dst is 4790 / vxlan flag_p is 1 protocol is 2 ... / ... Signed-off-by: Gavin Li Acked-by: Thomas Monjalon Acked-by: Ori Kam --- app/test-pmd/cmdline_flow.c | 195 +++++++++++++------- doc/guides/testpmd_app_ug/testpmd_funcs.rst | 35 ++-- 2 files changed, 150 insertions(+), 80 deletions(-) diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c index 60ee9337cf..b98c134202 100644 --- a/app/test-pmd/cmdline_flow.c +++ b/app/test-pmd/cmdline_flow.c @@ -382,6 +382,19 @@ enum index { ITEM_SCTP_CKSUM, ITEM_VXLAN, ITEM_VXLAN_VNI, + ITEM_VXLAN_FLAG_G, + ITEM_VXLAN_FLAG_VER, + ITEM_VXLAN_FLAG_I, + ITEM_VXLAN_FLAG_P, + ITEM_VXLAN_FLAG_B, + ITEM_VXLAN_FLAG_O, + ITEM_VXLAN_FLAG_D, + ITEM_VXLAN_FLAG_A, + ITEM_VXLAN_GBP_ID, + ITEM_VXLAN_GPE_PROTO, + ITEM_VXLAN_FIRST_RSVD, + ITEM_VXLAN_SECND_RSVD, + ITEM_VXLAN_THIRD_RSVD, ITEM_VXLAN_LAST_RSVD, ITEM_E_TAG, ITEM_E_TAG_GRP_ECID_B, @@ -410,12 +423,6 @@ enum index { ITEM_GENEVE_VNI, ITEM_GENEVE_PROTO, ITEM_GENEVE_OPTLEN, - ITEM_VXLAN_GPE, - ITEM_VXLAN_GPE_VNI, - ITEM_VXLAN_GPE_PROTO, - ITEM_VXLAN_GPE_FLAGS, - ITEM_VXLAN_GPE_RSVD0, - ITEM_VXLAN_GPE_RSVD1, ITEM_ARP_ETH_IPV4, ITEM_ARP_ETH_IPV4_SHA, ITEM_ARP_ETH_IPV4_SPA, @@ -1604,7 +1611,6 @@ static const enum index next_item[] = { ITEM_GTPC, ITEM_GTPU, ITEM_GENEVE, - ITEM_VXLAN_GPE, ITEM_ARP_ETH_IPV4, ITEM_IPV6_EXT, ITEM_IPV6_FRAG_EXT, @@ -1778,6 +1784,19 @@ static const enum index item_sctp[] = { static const enum index item_vxlan[] = { ITEM_VXLAN_VNI, + ITEM_VXLAN_FLAG_G, + ITEM_VXLAN_FLAG_VER, + ITEM_VXLAN_FLAG_I, + ITEM_VXLAN_FLAG_P, + ITEM_VXLAN_FLAG_B, + ITEM_VXLAN_FLAG_O, + ITEM_VXLAN_FLAG_D, + ITEM_VXLAN_FLAG_A, + ITEM_VXLAN_GBP_ID, + ITEM_VXLAN_GPE_PROTO, + ITEM_VXLAN_FIRST_RSVD, + ITEM_VXLAN_SECND_RSVD, + ITEM_VXLAN_THIRD_RSVD, ITEM_VXLAN_LAST_RSVD, ITEM_NEXT, ZERO, @@ -1844,16 +1863,6 @@ static const enum index item_geneve[] = { ZERO, }; -static const enum index item_vxlan_gpe[] = { - ITEM_VXLAN_GPE_VNI, - ITEM_VXLAN_GPE_PROTO, - ITEM_VXLAN_GPE_FLAGS, - ITEM_VXLAN_GPE_RSVD0, - ITEM_VXLAN_GPE_RSVD1, - ITEM_NEXT, - ZERO, -}; - static const enum index item_arp_eth_ipv4[] = { ITEM_ARP_ETH_IPV4_SHA, ITEM_ARP_ETH_IPV4_SPA, @@ -4910,6 +4919,110 @@ static const struct token token_list[] = { item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_vxlan, hdr.vni)), }, + [ITEM_VXLAN_FLAG_G] = { + .name = "flag_g", + .help = "VXLAN GBP bit", + .next = NEXT(item_vxlan, NEXT_ENTRY(COMMON_UNSIGNED), + item_param), + .args = ARGS(ARGS_ENTRY_BF(struct rte_flow_item_vxlan, + hdr.flag_g, 1)), + }, + [ITEM_VXLAN_FLAG_VER] = { + .name = "flag_ver", + .help = "VXLAN GPE version", + .next = NEXT(item_vxlan, NEXT_ENTRY(COMMON_UNSIGNED), + item_param), + .args = ARGS(ARGS_ENTRY_BF(struct rte_flow_item_vxlan, + hdr.flag_ver, 2)), + }, + [ITEM_VXLAN_FLAG_I] = { + .name = "flag_i", + .help = "VXLAN Instance bit", + .next = NEXT(item_vxlan, NEXT_ENTRY(COMMON_UNSIGNED), + item_param), + .args = ARGS(ARGS_ENTRY_BF(struct rte_flow_item_vxlan, + hdr.flag_i, 1)), + }, + [ITEM_VXLAN_FLAG_P] = { + .name = "flag_p", + .help = "VXLAN GPE Next Protocol bit", + .next = NEXT(item_vxlan, NEXT_ENTRY(COMMON_UNSIGNED), + item_param), + .args = ARGS(ARGS_ENTRY_BF(struct rte_flow_item_vxlan, + hdr.flag_p, 1)), + }, + [ITEM_VXLAN_FLAG_B] = { + .name = "flag_b", + .help = "VXLAN GPE Ingress-Replicated BUM", + .next = NEXT(item_vxlan, NEXT_ENTRY(COMMON_UNSIGNED), + item_param), + .args = ARGS(ARGS_ENTRY_BF(struct rte_flow_item_vxlan, + hdr.flag_b, 1)), + }, + [ITEM_VXLAN_FLAG_O] = { + .name = "flag_o", + .help = "VXLAN GPE OAM Packet bit", + .next = NEXT(item_vxlan, NEXT_ENTRY(COMMON_UNSIGNED), + item_param), + .args = ARGS(ARGS_ENTRY_BF(struct rte_flow_item_vxlan, + hdr.flag_o, 1)), + }, + [ITEM_VXLAN_FLAG_D] = { + .name = "flag_d", + .help = "VXLAN GBP Don't Learn bit", + .next = NEXT(item_vxlan, NEXT_ENTRY(COMMON_UNSIGNED), + item_param), + .args = ARGS(ARGS_ENTRY_BF(struct rte_flow_item_vxlan, + hdr.flag_d, 1)), + }, + [ITEM_VXLAN_FLAG_A] = { + .name = "flag_a", + .help = "VXLAN GBP Applied bit", + .next = NEXT(item_vxlan, NEXT_ENTRY(COMMON_UNSIGNED), + item_param), + .args = ARGS(ARGS_ENTRY_BF(struct rte_flow_item_vxlan, + hdr.flag_a, 1)), + }, + [ITEM_VXLAN_GBP_ID] = { + .name = "group_policy_id", + .help = "VXLAN GBP ID", + .next = NEXT(item_vxlan, NEXT_ENTRY(COMMON_UNSIGNED), + item_param), + .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_vxlan, + hdr.policy_id)), + }, + [ITEM_VXLAN_GPE_PROTO] = { + .name = "protocol", + .help = "VXLAN GPE next protocol", + .next = NEXT(item_vxlan, NEXT_ENTRY(COMMON_UNSIGNED), + item_param), + .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_vxlan, + hdr.proto)), + }, + [ITEM_VXLAN_FIRST_RSVD] = { + .name = "first_rsvd", + .help = "VXLAN rsvd0 first byte", + .next = NEXT(item_vxlan, NEXT_ENTRY(COMMON_UNSIGNED), + item_param), + .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_vxlan, + hdr.rsvd0[0])), + }, + [ITEM_VXLAN_SECND_RSVD] = { + .name = "second_rsvd", + .help = "VXLAN rsvd0 second byte", + .next = NEXT(item_vxlan, NEXT_ENTRY(COMMON_UNSIGNED), + item_param), + .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_vxlan, + hdr.rsvd0[1])), + }, + [ITEM_VXLAN_THIRD_RSVD] = { + .name = "third_rsvd", + .help = "VXLAN rsvd0 third byte", + .next = NEXT(item_vxlan, NEXT_ENTRY(COMMON_UNSIGNED), + item_param), + .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_vxlan, + hdr.rsvd0[2])), + }, [ITEM_VXLAN_LAST_RSVD] = { .name = "last_rsvd", .help = "VXLAN last reserved bits", @@ -5127,54 +5240,6 @@ static const struct token token_list[] = { ver_opt_len_o_c_rsvd0, "\x3f\x00")), }, - [ITEM_VXLAN_GPE] = { - .name = "vxlan-gpe", - .help = "match VXLAN-GPE header", - .priv = PRIV_ITEM(VXLAN_GPE, - sizeof(struct rte_flow_item_vxlan_gpe)), - .next = NEXT(item_vxlan_gpe), - .call = parse_vc, - }, - [ITEM_VXLAN_GPE_VNI] = { - .name = "vni", - .help = "VXLAN-GPE identifier", - .next = NEXT(item_vxlan_gpe, NEXT_ENTRY(COMMON_UNSIGNED), - item_param), - .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_vxlan_gpe, - hdr.vni)), - }, - [ITEM_VXLAN_GPE_PROTO] = { - .name = "protocol", - .help = "VXLAN-GPE next protocol", - .next = NEXT(item_vxlan_gpe, NEXT_ENTRY(COMMON_UNSIGNED), - item_param), - .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_vxlan_gpe, - protocol)), - }, - [ITEM_VXLAN_GPE_FLAGS] = { - .name = "flags", - .help = "VXLAN-GPE flags", - .next = NEXT(item_vxlan_gpe, NEXT_ENTRY(COMMON_UNSIGNED), - item_param), - .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_vxlan_gpe, - flags)), - }, - [ITEM_VXLAN_GPE_RSVD0] = { - .name = "rsvd0", - .help = "VXLAN-GPE rsvd0", - .next = NEXT(item_vxlan_gpe, NEXT_ENTRY(COMMON_UNSIGNED), - item_param), - .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_vxlan_gpe, - rsvd0)), - }, - [ITEM_VXLAN_GPE_RSVD1] = { - .name = "rsvd1", - .help = "VXLAN-GPE rsvd1", - .next = NEXT(item_vxlan_gpe, NEXT_ENTRY(COMMON_UNSIGNED), - item_param), - .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_vxlan_gpe, - rsvd1)), - }, [ITEM_ARP_ETH_IPV4] = { .name = "arp_eth_ipv4", .help = "match ARP header for Ethernet/IPv4", diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst index ecd040504e..1de1420b94 100644 --- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst +++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst @@ -214,7 +214,6 @@ For example: vxlan geneve nvgre - vxlan-gpe show port (module_eeprom|eeprom) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -1104,12 +1103,12 @@ Where: * ``ip|udp|tcp|sctp`` always relate to the inner layer. * ``outer-ip`` relates to the outer IP layer (only for IPv4) in the case where the packet is recognized - as a tunnel packet by the forwarding engine (geneve, gre, gtp, ipip, vxlan and vxlan-gpe are - supported). See also the ``csum parse-tunnel`` command. + as a tunnel packet by the forwarding engine (geneve, gre, gtp, ipip and vxlan are supported). + See also the ``csum parse-tunnel`` command. * ``outer-udp`` relates to the outer UDP layer in the case where the packet is recognized - as a tunnel packet by the forwarding engine (geneve, gtp, vxlan and vxlan-gpe are - supported). See also the ``csum parse-tunnel`` command. + as a tunnel packet by the forwarding engine (geneve, gtp and vxlan are supported). + See also the ``csum parse-tunnel`` command. .. note:: @@ -1124,7 +1123,7 @@ engine:: testpmd> csum parse-tunnel (on|off) (tx_port_id) If enabled, the csum forward engine will try to recognize supported -tunnel headers (geneve, gtp, gre, ipip, vxlan, vxlan-gpe). +tunnel headers (geneve, gtp, gre, ipip, vxlan). If disabled, treat tunnel packets as non-tunneled packets (a inner header is handled as a packet payload). @@ -2222,7 +2221,7 @@ port config udp_tunnel_port Add/remove UDP tunnel port for VXLAN/GENEVE tunneling protocols:: - testpmd> port config (port_id) udp_tunnel_port add|rm vxlan|geneve|vxlan-gpe|ecpri (udp_port) + testpmd> port config (port_id) udp_tunnel_port add|rm vxlan|geneve|ecpri (udp_port) port config tx_metadata ~~~~~~~~~~~~~~~~~~~~~~~ @@ -3696,7 +3695,20 @@ This section lists supported pattern items and their attributes, if any. - ``vxlan``: match VXLAN header. - ``vni {unsigned}``: VXLAN identifier. - - ``last_rsvd {unsigned}``: VXLAN last reserved 8-bits. + - ``flag_g {unsigned}``: VXLAN flag GBP bit. + - ``flag_ver {unsigned}``: VXLAN flag GPE version. + - ``flag_i {unsigned}``: VXLAN flag Instance bit. + - ``flag_p {unsigned}``: VXLAN flag GPE Next Protocol bit. + - ``flag_b {unsigned}``: VXLAN flag GPE Ingress-Replicated BUM. + - ``flag_o {unsigned}``: VXLAN flag GPE OAM Packet bit. + - ``flag_d {unsigned}``: VXLAN flag GBP Don't Learn bit. + - ``flag_a {unsigned}``: VXLAN flag GBP Applied bit. + - ``group_policy_id {unsigned}``: VXLAN GBP Group Policy ID. + - ``protocol {unsigned}`` : VXLAN GPE next protocol. + - ``first_rsvd {unsigned}`` : VXLAN rsvd0 first byte. + - ``secnd_rsvd {unsigned}`` : VXLAN rsvd0 second byte. + - ``third_rsvd {unsigned}`` : VXLAN rsvd0 third byte. + - ``last_rsvd {unsigned}``: VXLAN last reserved byte. - ``e_tag``: match IEEE 802.1BR E-Tag header. @@ -3745,13 +3757,6 @@ This section lists supported pattern items and their attributes, if any. - ``data {hex string}``: GENEVE option data, the length is defined by ``length`` field. -- ``vxlan-gpe``: match VXLAN-GPE header. - - - ``vni {unsigned}``: VXLAN-GPE identifier. - - ``flags {unsigned}``: VXLAN-GPE flags. - - ``rsvd0 {unsigned}``: VXLAN-GPE reserved field 0. - - ``rsvd1 {unsigned}``: VXLAN-GPE reserved field 1. - - ``arp_eth_ipv4``: match ARP header for Ethernet/IPv4. - ``sha {MAC-48}``: sender hardware address. -- 2.34.1