[dpdk-dev,v2] net/enic: fix hardcoding of some flow director masks

Message ID 20170209004009.26242-2-johndale@cisco.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel compilation fail Compilation issues

Commit Message

John Daley (johndale) Feb. 9, 2017, 12:40 a.m. UTC
  Hard coded mask values were being used for several of the IPv4 and IPv6
fields. Use the values in the rte_eth_fdir_masks structure provided by the
caller.

Fixes: dfbd6a9cb504 ("net/enic: extend flow director support for 1300 series")

Cc: stable@dpdk.org
Signed-off-by: John Daley <johndale@cisco.com>
---

 v2: fix compile error

 drivers/net/enic/enic_clsf.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)
  

Comments

Ferruh Yigit Feb. 9, 2017, 10:16 a.m. UTC | #1
On 2/9/2017 12:40 AM, John Daley wrote:
> Hard coded mask values were being used for several of the IPv4 and IPv6
> fields. Use the values in the rte_eth_fdir_masks structure provided by the
> caller.
> 
> Fixes: dfbd6a9cb504 ("net/enic: extend flow director support for 1300 series")
> 
> Cc: stable@dpdk.org
> Signed-off-by: John Daley <johndale@cisco.com>
> ---
> 
>  v2: fix compile error

I wasn't getting an error for this.

V2 adds:

-	ipv6_val.vtc_flow = input->flow.ipv6_flow.tc << 16;
+	ipv6_val.vtc_flow = input->flow.ipv6_flow.tc << 12;

What is the compile error this fixes?

Thanks,
ferruh
  
Ferruh Yigit Feb. 9, 2017, 12:21 p.m. UTC | #2
On 2/9/2017 12:40 AM, John Daley wrote:
> Hard coded mask values were being used for several of the IPv4 and IPv6
> fields. Use the values in the rte_eth_fdir_masks structure provided by the
> caller.
> 
> Fixes: dfbd6a9cb504 ("net/enic: extend flow director support for 1300 series") 
> Cc: stable@dpdk.org

> Signed-off-by: John Daley <johndale@cisco.com>

Applied to dpdk-next-net/master, thanks.
  
John Daley (johndale) Feb. 9, 2017, 5:43 p.m. UTC | #3
> -----Original Message-----
> From: Ferruh Yigit [mailto:ferruh.yigit@intel.com]
> Sent: Thursday, February 09, 2017 2:16 AM
> To: John Daley (johndale) <johndale@cisco.com>
> Cc: dev@dpdk.org; stable@dpdk.org
> Subject: Re: [PATCH v2] net/enic: fix hardcoding of some flow director masks
> 
> On 2/9/2017 12:40 AM, John Daley wrote:
> > Hard coded mask values were being used for several of the IPv4 and
> > IPv6 fields. Use the values in the rte_eth_fdir_masks structure
> > provided by the caller.
> >
> > Fixes: dfbd6a9cb504 ("net/enic: extend flow director support for 1300
> > series")
> >
> > Cc: stable@dpdk.org
> > Signed-off-by: John Daley <johndale@cisco.com>
> > ---
> >
> >  v2: fix compile error
> 
> I wasn't getting an error for this.
> 
> V2 adds:
> 
> -	ipv6_val.vtc_flow = input->flow.ipv6_flow.tc << 16;
> +	ipv6_val.vtc_flow = input->flow.ipv6_flow.tc << 12;
> 
> What is the compile error this fixes?

This patch had the compile error:
http://www.dpdk.org/dev/patchwork/patch/20147/
+			ipv6_mask.vtc_flow = masks->ipv6_mask.tc << 16);
  
Ferruh Yigit Feb. 9, 2017, 5:58 p.m. UTC | #4
On 2/9/2017 5:43 PM, John Daley (johndale) wrote:
> 
> 
>> -----Original Message-----
>> From: Ferruh Yigit [mailto:ferruh.yigit@intel.com]
>> Sent: Thursday, February 09, 2017 2:16 AM
>> To: John Daley (johndale) <johndale@cisco.com>
>> Cc: dev@dpdk.org; stable@dpdk.org
>> Subject: Re: [PATCH v2] net/enic: fix hardcoding of some flow director masks
>>
>> On 2/9/2017 12:40 AM, John Daley wrote:
>>> Hard coded mask values were being used for several of the IPv4 and
>>> IPv6 fields. Use the values in the rte_eth_fdir_masks structure
>>> provided by the caller.
>>>
>>> Fixes: dfbd6a9cb504 ("net/enic: extend flow director support for 1300
>>> series")
>>>
>>> Cc: stable@dpdk.org
>>> Signed-off-by: John Daley <johndale@cisco.com>
>>> ---
>>>
>>>  v2: fix compile error
>>
>> I wasn't getting an error for this.
>>
>> V2 adds:
>>
>> -	ipv6_val.vtc_flow = input->flow.ipv6_flow.tc << 16;
>> +	ipv6_val.vtc_flow = input->flow.ipv6_flow.tc << 12;
>>
>> What is the compile error this fixes?
> 
> This patch had the compile error:
> http://www.dpdk.org/dev/patchwork/patch/20147/
> +			ipv6_mask.vtc_flow = masks->ipv6_mask.tc << 16);

I see, perhaps (don't remember) I fixed this while applying, because
next-net was compiling fine.
  

Patch

diff --git a/drivers/net/enic/enic_clsf.c b/drivers/net/enic/enic_clsf.c
index bcf479a..487f804 100644
--- a/drivers/net/enic/enic_clsf.c
+++ b/drivers/net/enic/enic_clsf.c
@@ -211,15 +211,15 @@  copy_fltr_v2(struct filter_v2 *fltr, struct rte_eth_fdir_input *input,
 		memset(&ip4_val, 0, sizeof(struct ipv4_hdr));
 
 		if (input->flow.ip4_flow.tos) {
-			ip4_mask.type_of_service = 0xff;
+			ip4_mask.type_of_service = masks->ipv4_mask.tos;
 			ip4_val.type_of_service = input->flow.ip4_flow.tos;
 		}
 		if (input->flow.ip4_flow.ttl) {
-			ip4_mask.time_to_live = 0xff;
+			ip4_mask.time_to_live = masks->ipv4_mask.ttl;
 			ip4_val.time_to_live = input->flow.ip4_flow.ttl;
 		}
 		if (input->flow.ip4_flow.proto) {
-			ip4_mask.next_proto_id = 0xff;
+			ip4_mask.next_proto_id = masks->ipv4_mask.proto;
 			ip4_val.next_proto_id = input->flow.ip4_flow.proto;
 		}
 		if (input->flow.ip4_flow.src_ip) {
@@ -299,7 +299,7 @@  copy_fltr_v2(struct filter_v2 *fltr, struct rte_eth_fdir_input *input,
 		memset(&ipv6_val, 0, sizeof(struct ipv6_hdr));
 
 		if (input->flow.ipv6_flow.proto) {
-			ipv6_mask.proto = 0xff;
+			ipv6_mask.proto = masks->ipv6_mask.proto;
 			ipv6_val.proto = input->flow.ipv6_flow.proto;
 		}
 		for (i = 0; i < 4; i++) {
@@ -315,11 +315,11 @@  copy_fltr_v2(struct filter_v2 *fltr, struct rte_eth_fdir_input *input,
 					input->flow.ipv6_flow.dst_ip[i];
 		}
 		if (input->flow.ipv6_flow.tc) {
-			ipv6_mask.vtc_flow = 0x00ff0000;
-			ipv6_val.vtc_flow = input->flow.ipv6_flow.tc << 16;
+			ipv6_mask.vtc_flow = masks->ipv6_mask.tc << 12;
+			ipv6_val.vtc_flow = input->flow.ipv6_flow.tc << 12;
 		}
 		if (input->flow.ipv6_flow.hop_limits) {
-			ipv6_mask.hop_limits = 0xff;
+			ipv6_mask.hop_limits = masks->ipv6_mask.hop_limits;
 			ipv6_val.hop_limits = input->flow.ipv6_flow.hop_limits;
 		}