avf: avf flow bug fix
This patch fixes the below bugs in avf flow: 1. remove the VXLAN flow as it is not yet supported 2. fix a typo in IPv6 flow 3. fix the wrong type of the AH flows Also did some cleanup in this patch Type: fix Signed-off-by: Chenmin Sun <chenmin.sun@intel.com> Change-Id: I5eae131f1e89071364a41b7006a00e8425089a4f
This commit is contained in:
committed by
Matthew Smith
parent
4b1bacffe3
commit
7a016e87e4
+2
-26
@@ -129,7 +129,7 @@ avf_flow_add (u32 dev_instance, vnet_flow_t *f, avf_flow_entry_t *fe)
|
||||
struct avf_gtp_hdr gtp_spec = {}, gtp_mask = {};
|
||||
struct avf_l2tpv3oip_hdr l2tpv3_spec = {}, l2tpv3_mask = {};
|
||||
struct avf_esp_hdr esp_spec = {}, esp_mask = {};
|
||||
struct avf_esp_hdr ah_spec = {}, ah_mask = {};
|
||||
struct avf_ah_hdr ah_spec = {}, ah_mask = {};
|
||||
|
||||
struct avf_flow_action_queue act_q = {};
|
||||
struct avf_flow_action_mark act_msk = {};
|
||||
@@ -181,9 +181,6 @@ avf_flow_add (u32 dev_instance, vnet_flow_t *f, avf_flow_entry_t *fe)
|
||||
avf_items[layer].mask = &ip4_mask;
|
||||
layer++;
|
||||
|
||||
// memset (&ip4_spec, 0, sizeof (ip4_spec));
|
||||
// memset (&ip4_mask, 0, sizeof (ip4_mask));
|
||||
|
||||
if ((!ip4_ptr->src_addr.mask.as_u32) &&
|
||||
(!ip4_ptr->dst_addr.mask.as_u32) && (!ip4_ptr->protocol.mask))
|
||||
{
|
||||
@@ -218,14 +215,11 @@ avf_flow_add (u32 dev_instance, vnet_flow_t *f, avf_flow_entry_t *fe)
|
||||
vnet_flow_ip6_t *ip6_ptr = &f->ip6;
|
||||
|
||||
/* IPv6 Layer */
|
||||
avf_items[layer].type = VIRTCHNL_PROTO_HDR_IPV4;
|
||||
avf_items[layer].type = VIRTCHNL_PROTO_HDR_IPV6;
|
||||
avf_items[layer].spec = &ip6_spec;
|
||||
avf_items[layer].mask = &ip6_mask;
|
||||
layer++;
|
||||
|
||||
// memset (&ip6_spec, 0, sizeof (ip6_spec));
|
||||
// memset (&ip6_mask, 0, sizeof (ip6_mask));
|
||||
|
||||
if ((ip6_address_is_zero (&ip6_ptr->src_addr.mask)) &&
|
||||
(ip6_address_is_zero (&ip6_ptr->dst_addr.mask)) &&
|
||||
(!ip6_ptr->protocol.mask))
|
||||
@@ -271,9 +265,6 @@ avf_flow_add (u32 dev_instance, vnet_flow_t *f, avf_flow_entry_t *fe)
|
||||
avf_items[layer].mask = &l2tpv3_mask;
|
||||
layer++;
|
||||
|
||||
// memset (&l2tpv3_spec, 0, sizeof (l2tpv3_spec));
|
||||
// memset (&l2tpv3_mask, 0, sizeof (l2tpv3_mask));
|
||||
|
||||
vnet_flow_ip4_l2tpv3oip_t *l2tph = &f->ip4_l2tpv3oip;
|
||||
l2tpv3_spec.session_id = clib_host_to_net_u32 (l2tph->session_id);
|
||||
l2tpv3_mask.session_id = ~0;
|
||||
@@ -285,9 +276,6 @@ avf_flow_add (u32 dev_instance, vnet_flow_t *f, avf_flow_entry_t *fe)
|
||||
avf_items[layer].mask = &esp_mask;
|
||||
layer++;
|
||||
|
||||
// memset (&esp_spec, 0, sizeof (esp_spec));
|
||||
// memset (&esp_mask, 0, sizeof (esp_mask));
|
||||
|
||||
vnet_flow_ip4_ipsec_esp_t *esph = &f->ip4_ipsec_esp;
|
||||
esp_spec.spi = clib_host_to_net_u32 (esph->spi);
|
||||
esp_mask.spi = ~0;
|
||||
@@ -299,9 +287,6 @@ avf_flow_add (u32 dev_instance, vnet_flow_t *f, avf_flow_entry_t *fe)
|
||||
avf_items[layer].mask = &ah_mask;
|
||||
layer++;
|
||||
|
||||
// memset (&ah_spec, 0, sizeof (ah_spec));
|
||||
// memset (&ah_mask, 0, sizeof (ah_mask));
|
||||
|
||||
vnet_flow_ip4_ipsec_ah_t *ah = &f->ip4_ipsec_ah;
|
||||
ah_spec.spi = clib_host_to_net_u32 (ah->spi);
|
||||
ah_mask.spi = ~0;
|
||||
@@ -313,9 +298,6 @@ avf_flow_add (u32 dev_instance, vnet_flow_t *f, avf_flow_entry_t *fe)
|
||||
avf_items[layer].mask = &tcp_mask;
|
||||
layer++;
|
||||
|
||||
// memset (&tcp_spec, 0, sizeof (tcp_spec));
|
||||
// memset (&tcp_mask, 0, sizeof (tcp_mask));
|
||||
|
||||
if (src_port_mask)
|
||||
{
|
||||
tcp_spec.src_port = clib_host_to_net_u16 (src_port);
|
||||
@@ -334,9 +316,6 @@ avf_flow_add (u32 dev_instance, vnet_flow_t *f, avf_flow_entry_t *fe)
|
||||
avf_items[layer].mask = &udp_mask;
|
||||
layer++;
|
||||
|
||||
// memset (&udp_spec, 0, sizeof (udp_spec));
|
||||
// memset (&udp_mask, 0, sizeof (udp_mask));
|
||||
|
||||
if (src_port_mask)
|
||||
{
|
||||
udp_spec.src_port = clib_host_to_net_u16 (src_port);
|
||||
@@ -356,9 +335,6 @@ avf_flow_add (u32 dev_instance, vnet_flow_t *f, avf_flow_entry_t *fe)
|
||||
avf_items[layer].mask = >p_mask;
|
||||
layer++;
|
||||
|
||||
// memset (>p_spec, 0, sizeof (gtp_spec));
|
||||
// memset (>p_mask, 0, sizeof (gtp_mask));
|
||||
|
||||
vnet_flow_ip4_gtpu_t *gu = &f->ip4_gtpu;
|
||||
gtp_spec.teid = clib_host_to_net_u32 (gu->teid);
|
||||
gtp_mask.teid = ~0;
|
||||
|
||||
@@ -638,7 +638,6 @@ dpdk_flow_ops_fn (vnet_main_t * vnm, vnet_flow_dev_op_t op, u32 dev_instance,
|
||||
case VNET_FLOW_TYPE_IP6:
|
||||
case VNET_FLOW_TYPE_IP4_N_TUPLE:
|
||||
case VNET_FLOW_TYPE_IP6_N_TUPLE:
|
||||
case VNET_FLOW_TYPE_IP4_VXLAN:
|
||||
case VNET_FLOW_TYPE_IP4_GTPC:
|
||||
case VNET_FLOW_TYPE_IP4_GTPU:
|
||||
case VNET_FLOW_TYPE_IP4_L2TPV3OIP:
|
||||
|
||||
Reference in New Issue
Block a user