aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/dpdk/device/flow.c
diff options
context:
space:
mode:
authorChenmin Sun <chenmin.sun@intel.com>2020-02-26 19:22:35 +0800
committerDamjan Marion <dmarion@me.com>2020-03-04 14:26:06 +0000
commitf13830ce76873390e7d3080e66d5ddb5234754f0 (patch)
tree1594c5b3b0e911777b45b17f563236bd3c708078 /src/plugins/dpdk/device/flow.c
parent567e562a96f2ccd425c4b11a792dde60369af4c4 (diff)
flow: add vlan tagged types for IPv4/IPv6 5-tuple flows
Add new flow type IP4_N_TUPLE_TAGGED and IP6_N_TUPLE_TAGGED for vlan tag sensitive flows The original IP4_N_TUPLE and IP6_N_TUPLE will not match VLAN anymore Type: feature Signed-off-by: Chenmin Sun <chenmin.sun@intel.com> Change-Id: Ie511e9a64126440fe81f29665a56ca060061662d
Diffstat (limited to 'src/plugins/dpdk/device/flow.c')
-rw-r--r--src/plugins/dpdk/device/flow.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/plugins/dpdk/device/flow.c b/src/plugins/dpdk/device/flow.c
index 85a62bbf46b..dd62ba5c73b 100644
--- a/src/plugins/dpdk/device/flow.c
+++ b/src/plugins/dpdk/device/flow.c
@@ -32,6 +32,11 @@
#define FLOW_IS_L2_LAYER(f) \
(f->type == VNET_FLOW_TYPE_ETHERNET)
+/* check if flow is VLAN sensitive */
+#define FLOW_IS_VLAN_TAGGED(f) \
+ ((f->type == VNET_FLOW_TYPE_IP4_N_TUPLE_TAGGED) || \
+ (f->type == VNET_FLOW_TYPE_IP6_N_TUPLE_TAGGED))
+
/* check if flow is L4 type */
#define FLOW_IS_L4_LAYER(f) \
((f->type == VNET_FLOW_TYPE_IP4_N_TUPLE) || \
@@ -134,9 +139,7 @@ dpdk_flow_add (dpdk_device_t * xd, vnet_flow_t * f, dpdk_flow_entry_t * fe)
item->mask = NULL;
}
- /* VLAN */
- if ((f->type == VNET_FLOW_TYPE_IP4_N_TUPLE) ||
- (f->type == VNET_FLOW_TYPE_IP6_N_TUPLE))
+ if (FLOW_IS_VLAN_TAGGED (f))
{
vec_add2 (items, item, 1);
item->type = RTE_FLOW_ITEM_TYPE_VLAN;