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
This commit is contained in:

committed by
Damjan Marion

parent
567e562a96
commit
f13830ce76
@ -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;
|
||||
|
@ -29,6 +29,8 @@
|
||||
/* l4 flow*/ \
|
||||
_(IP4_N_TUPLE, ip4_n_tuple, "ipv4-n-tuple") \
|
||||
_(IP6_N_TUPLE, ip6_n_tuple, "ipv6-n-tuple") \
|
||||
_(IP4_N_TUPLE_TAGGED, ip4_n_tuple_tagged, "ipv4-n-tuple-tagged") \
|
||||
_(IP6_N_TUPLE_TAGGED, ip6_n_tuple_tagged, "ipv6-n-tuple-tagged") \
|
||||
/* L4 tunnel flow*/ \
|
||||
_(IP4_VXLAN, ip4_vxlan, "ipv4-vxlan") \
|
||||
_(IP6_VXLAN, ip6_vxlan, "ipv6-vxlan") \
|
||||
@ -58,6 +60,21 @@
|
||||
_fe(ip_port_and_mask_t, dst_port) \
|
||||
_fe(ip_protocol_t, protocol)
|
||||
|
||||
#define foreach_flow_entry_ip4_n_tuple_tagged \
|
||||
_fe(ip4_address_and_mask_t, src_addr) \
|
||||
_fe(ip4_address_and_mask_t, dst_addr) \
|
||||
_fe(ip_port_and_mask_t, src_port) \
|
||||
_fe(ip_port_and_mask_t, dst_port) \
|
||||
_fe(ip_protocol_t, protocol)
|
||||
|
||||
#define foreach_flow_entry_ip6_n_tuple_tagged \
|
||||
_fe(ip6_address_and_mask_t, src_addr) \
|
||||
_fe(ip6_address_and_mask_t, dst_addr) \
|
||||
_fe(ip_port_and_mask_t, src_port) \
|
||||
_fe(ip_port_and_mask_t, dst_port) \
|
||||
_fe(ip_protocol_t, protocol)
|
||||
|
||||
|
||||
#define foreach_flow_entry_ip4_vxlan \
|
||||
_fe(ip4_address_t, src_addr) \
|
||||
_fe(ip4_address_t, dst_addr) \
|
||||
|
Reference in New Issue
Block a user