Add "uint8_t last_rsvd" as union with origin rsvd1. Add RTE_FLOW_FIELD_VXLAN_LAST_RSVD into rte flow packet field.
The new union is used by testpmd matching item VXLAN "last_rsvd" and modify target RTE_FLOW_FIELD_VXLAN_LAST_RSVD. Signed-off-by: Rongwei Liu <rongw...@nvidia.com> Acked-by: Dariusz Sosnowski <dsosnow...@nvidia.com> Acked-by: Thomas Monjalon <tho...@monjalon.net> --- app/test-pmd/cmdline_flow.c | 5 +++-- lib/ethdev/rte_flow.h | 1 + lib/net/rte_vxlan.h | 5 ++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c index 775ce20fc4..99e2db04df 100644 --- a/app/test-pmd/cmdline_flow.c +++ b/app/test-pmd/cmdline_flow.c @@ -1006,6 +1006,7 @@ static const char *const flow_field_ids[] = { "ipv6_flow_label", "ipv6_traffic_class", "esp_spi", "esp_seq_num", "esp_proto", "random", + "vxlan_last_rsvd", NULL }; @@ -4912,11 +4913,11 @@ static const struct token token_list[] = { }, [ITEM_VXLAN_LAST_RSVD] = { .name = "last_rsvd", - .help = "VXLAN last reserved bits", + .help = "VXLAN last reserved byte", .next = NEXT(item_vxlan, NEXT_ENTRY(COMMON_UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_vxlan, - hdr.rsvd1)), + hdr.last_rsvd)), }, [ITEM_E_TAG] = { .name = "e_tag", diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h index 6e8ab1d4c7..74cf2e0f59 100644 --- a/lib/ethdev/rte_flow.h +++ b/lib/ethdev/rte_flow.h @@ -2428,6 +2428,7 @@ enum rte_flow_field_id { RTE_FLOW_FIELD_ESP_SEQ_NUM, /**< ESP Sequence Number. */ RTE_FLOW_FIELD_ESP_PROTO, /**< ESP next protocol value. */ RTE_FLOW_FIELD_RANDOM, /**< Random value. */ + RTE_FLOW_FIELD_VXLAN_LAST_RSVD, /**< VXLAN last reserved byte. */ }; /** diff --git a/lib/net/rte_vxlan.h b/lib/net/rte_vxlan.h index 997fc784fc..57300fb442 100644 --- a/lib/net/rte_vxlan.h +++ b/lib/net/rte_vxlan.h @@ -41,7 +41,10 @@ struct rte_vxlan_hdr { uint8_t flags; /**< Should be 8 (I flag). */ uint8_t rsvd0[3]; /**< Reserved. */ uint8_t vni[3]; /**< VXLAN identifier. */ - uint8_t rsvd1; /**< Reserved. */ + union { + uint8_t rsvd1; /**< Reserved. */ + uint8_t last_rsvd; /**< Reserved. */ + }; }; }; } __rte_packed; -- 2.27.0