From 7a016e87e473d28f87d4c0998d0682ead8642cf9 Mon Sep 17 00:00:00 2001 From: Chenmin Sun Date: Mon, 12 Apr 2021 20:42:42 +0800 Subject: 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 Change-Id: I5eae131f1e89071364a41b7006a00e8425089a4f --- src/plugins/avf/flow.c | 28 ++-------------------------- src/plugins/dpdk/device/flow.c | 1 - 2 files changed, 2 insertions(+), 27 deletions(-) (limited to 'src') diff --git a/src/plugins/avf/flow.c b/src/plugins/avf/flow.c index 7a80da6910f..4e94c81354d 100644 --- a/src/plugins/avf/flow.c +++ b/src/plugins/avf/flow.c @@ -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; diff --git a/src/plugins/dpdk/device/flow.c b/src/plugins/dpdk/device/flow.c index a090ec0e930..8daabc32bf8 100644 --- a/src/plugins/dpdk/device/flow.c +++ b/src/plugins/dpdk/device/flow.c @@ -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: -- cgit 1.2.3-korg