Add support for configuring VXLAN-GPE's next protocol.
The CLI is: vxlan-gpe protocol is <value>.

Example:
flow create 0 transfer group 1 pattern eth / ipv6 / udp dst is 4790
/ vxlan-gpe protocol is 0x04 / eth / ipv4  / tcp / end
actions port_id id 1 / end

Signed-off-by: Jiawei Wang <jiaw...@nvidia.com>
Signed-off-by: Haifei Luo <haif...@nvidia.com>
---
 app/test-pmd/cmdline_flow.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
index 94827bcc4a..d25f941259 100644
--- a/app/test-pmd/cmdline_flow.c
+++ b/app/test-pmd/cmdline_flow.c
@@ -385,6 +385,7 @@ enum index {
        ITEM_GENEVE_OPTLEN,
        ITEM_VXLAN_GPE,
        ITEM_VXLAN_GPE_VNI,
+       ITEM_VXLAN_GPE_PROTO,
        ITEM_ARP_ETH_IPV4,
        ITEM_ARP_ETH_IPV4_SHA,
        ITEM_ARP_ETH_IPV4_SPA,
@@ -1758,6 +1759,7 @@ static const enum index item_geneve[] = {
 
 static const enum index item_vxlan_gpe[] = {
        ITEM_VXLAN_GPE_VNI,
+       ITEM_VXLAN_GPE_PROTO,
        ITEM_NEXT,
        ZERO,
 };
@@ -4804,6 +4806,14 @@ static const struct token token_list[] = {
                .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_ARP_ETH_IPV4] = {
                .name = "arp_eth_ipv4",
                .help = "match ARP header for Ethernet/IPv4",
-- 
2.34.1

Reply via email to