@@ -160,6 +160,7 @@ enum index {
ITEM_SCTP_TAG,
ITEM_SCTP_CKSUM,
ITEM_VXLAN,
+ ITEM_L3VXLAN,
ITEM_VXLAN_VNI,
ITEM_E_TAG,
ITEM_E_TAG_GRP_ECID_B,
@@ -453,6 +454,7 @@ static const enum index next_item[] = {
ITEM_TCP,
ITEM_SCTP,
ITEM_VXLAN,
+ ITEM_L3VXLAN,
ITEM_E_TAG,
ITEM_NVGRE,
ITEM_MPLS,
@@ -1367,6 +1369,13 @@ static const struct token token_list[] = {
.next = NEXT(item_vxlan),
.call = parse_vc,
},
+ [ITEM_L3VXLAN] = {
+ .name = "l3vxlan",
+ .help = "match L3VXLAN header",
+ .priv = PRIV_ITEM(L3VXLAN, sizeof(struct rte_flow_item_vxlan)),
+ .next = NEXT(item_vxlan),
+ .call = parse_vc,
+ },
[ITEM_VXLAN_VNI] = {
.name = "vni",
.help = "VXLAN identifier",
@@ -125,6 +125,7 @@ static const struct rss_type_info rss_type_table[] = {
{ "ipv6-udp-ex", ETH_RSS_IPV6_UDP_EX },
{ "port", ETH_RSS_PORT },
{ "vxlan", ETH_RSS_VXLAN },
+ { "l3vxlan", ETH_RSS_L3VXLAN },
{ "geneve", ETH_RSS_GENEVE },
{ "nvgre", ETH_RSS_NVGRE },
@@ -965,6 +966,7 @@ static const struct {
MK_FLOW_ITEM(TCP, sizeof(struct rte_flow_item_tcp)),
MK_FLOW_ITEM(SCTP, sizeof(struct rte_flow_item_sctp)),
MK_FLOW_ITEM(VXLAN, sizeof(struct rte_flow_item_vxlan)),
+ MK_FLOW_ITEM(L3VXLAN, sizeof(struct rte_flow_item_vxlan)),
MK_FLOW_ITEM(E_TAG, sizeof(struct rte_flow_item_e_tag)),
MK_FLOW_ITEM(NVGRE, sizeof(struct rte_flow_item_nvgre)),
MK_FLOW_ITEM(MPLS, sizeof(struct rte_flow_item_mpls)),
@@ -2960,6 +2962,7 @@ flowtype_to_str(uint16_t flow_type)
{"l2_payload", RTE_ETH_FLOW_L2_PAYLOAD},
{"port", RTE_ETH_FLOW_PORT},
{"vxlan", RTE_ETH_FLOW_VXLAN},
+ {"l3vxlan", RTE_ETH_FLOW_L3VXLAN},
{"geneve", RTE_ETH_FLOW_GENEVE},
{"nvgre", RTE_ETH_FLOW_NVGRE},
};