patches for DPDK stable branches
 help / color / mirror / Atom feed
* [dpdk-stable] [PATCH 1/2] net/enic: fix hardcoding of some flow director masks
@ 2017-02-03  9:52 John Daley
  2017-02-03  9:52 ` [dpdk-stable] [PATCH 2/2] net/enic: fix flow director IPv6 traffic class specification John Daley
  0 siblings, 1 reply; 4+ messages in thread
From: John Daley @ 2017-02-03  9:52 UTC (permalink / raw)
  To: johnda888; +Cc: John Daley, stable

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>
---
 drivers/net/enic/enic_clsf.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/net/enic/enic_clsf.c b/drivers/net/enic/enic_clsf.c
index bcf479a..c2218fe 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_mask.vtc_flow = masks->ipv6_mask.tc << 16);
 			ipv6_val.vtc_flow = input->flow.ipv6_flow.tc << 16;
 		}
 		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;
 		}
 
-- 
2.10.0

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [dpdk-stable] [PATCH 2/2] net/enic: fix flow director IPv6 traffic class specification
  2017-02-03  9:52 [dpdk-stable] [PATCH 1/2] net/enic: fix hardcoding of some flow director masks John Daley
@ 2017-02-03  9:52 ` John Daley
  0 siblings, 0 replies; 4+ messages in thread
From: John Daley @ 2017-02-03  9:52 UTC (permalink / raw)
  To: johnda888; +Cc: John Daley, stable

The wrong offset was being used to specify the mask and value for the IPv6
traffic class field for fdir. Also, since the 1 byte field is not byte
aligned in the header, do the shifting in big endian and then convert the
32-bit vtc_flow to little endian as expected by the adapter.

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

Cc: stable@dpdk.org
Signed-off-by: John Daley <johndale@cisco.com>
---
 drivers/net/enic/enic_clsf.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/enic/enic_clsf.c b/drivers/net/enic/enic_clsf.c
index c2218fe..2665b6e 100644
--- a/drivers/net/enic/enic_clsf.c
+++ b/drivers/net/enic/enic_clsf.c
@@ -315,8 +315,10 @@ 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 = masks->ipv6_mask.tc << 16);
-			ipv6_val.vtc_flow = input->flow.ipv6_flow.tc << 16;
+			ipv6_mask.vtc_flow = rte_be_to_cpu_32((uint32_t)
+					     masks->ipv6_mask.tc << 20);
+			ipv6_val.vtc_flow = rte_be_to_cpu_32((uint32_t)
+					    input->flow.ipv6_flow.tc << 20);
 		}
 		if (input->flow.ipv6_flow.hop_limits) {
 			ipv6_mask.hop_limits = masks->ipv6_mask.hop_limits;
-- 
2.10.0

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-stable] [PATCH 1/2] net/enic: fix hardcoding of some flow director masks
  2017-02-03  9:54 [dpdk-stable] [PATCH 1/2] net/enic: fix hardcoding of some flow director masks John Daley
@ 2017-02-03 22:54 ` Ferruh Yigit
  0 siblings, 0 replies; 4+ messages in thread
From: Ferruh Yigit @ 2017-02-03 22:54 UTC (permalink / raw)
  To: John Daley; +Cc: dev, stable

On 2/3/2017 9:54 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>

Series applied to dpdk-next-net/master, thanks.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [dpdk-stable] [PATCH 1/2] net/enic: fix hardcoding of some flow director masks
@ 2017-02-03  9:54 John Daley
  2017-02-03 22:54 ` Ferruh Yigit
  0 siblings, 1 reply; 4+ messages in thread
From: John Daley @ 2017-02-03  9:54 UTC (permalink / raw)
  To: ferruh.yigit; +Cc: dev, John Daley, stable

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>
---
 drivers/net/enic/enic_clsf.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/net/enic/enic_clsf.c b/drivers/net/enic/enic_clsf.c
index bcf479a..c2218fe 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_mask.vtc_flow = masks->ipv6_mask.tc << 16);
 			ipv6_val.vtc_flow = input->flow.ipv6_flow.tc << 16;
 		}
 		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;
 		}
 
-- 
2.10.0

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-02-03 22:54 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-03  9:52 [dpdk-stable] [PATCH 1/2] net/enic: fix hardcoding of some flow director masks John Daley
2017-02-03  9:52 ` [dpdk-stable] [PATCH 2/2] net/enic: fix flow director IPv6 traffic class specification John Daley
2017-02-03  9:54 [dpdk-stable] [PATCH 1/2] net/enic: fix hardcoding of some flow director masks John Daley
2017-02-03 22:54 ` Ferruh Yigit

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).