* [PATCH net-next] net: ixgbe: Fix cls_u32 offload support for ports and fields with masks.
@ 2016-03-04 19:47 ` Sridhar Samudrala
0 siblings, 0 replies; 14+ messages in thread
From: Sridhar Samudrala @ 2016-03-04 19:47 UTC (permalink / raw)
To: intel-wired-lan, john.r.fastabend, netdev
Fix support for 16 bit source/dest port matches in ixgbe model.
u32 uses a single 32-bit key value for both source and destination ports
starting at offset 0. So replace the 2 functions with a single function
that takes this key value/mask to program both source and dest ports.
Remove the incorrect check for mask in ixgbe_configure_clsu32()
Tested with the following filters:
#tc qdisc add dev p4p1 ingress
#tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
handle 800:0:1 u32 ht 800: \
match ip dst 11.0.0.1/24 match ip src 11.0.0.2/24 action drop
#tc filter del dev p4p1 parent ffff: protocol ip prio 99 \
handle 800:0:1 u32
#tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
handle 1: u32 divisor 1
#tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
handle 800:0:10 u32 ht 800: link 1: \
offset at 0 mask 0f00 shift 6 plus 0 eat match ip protocol 6 ff
#tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
handle 1:0:10 u32 ht 1: \
match tcp src 1024 ffff match tcp dst 80 ffff action drop
Signed-off-by: Sridhar Samudrala <sridhar.samudrala@intel.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 3 +--
drivers/net/ethernet/intel/ixgbe/ixgbe_model.h | 17 ++++-------------
2 files changed, 5 insertions(+), 15 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 10ccd96..c520f98 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -8348,8 +8348,7 @@ static int ixgbe_configure_clsu32(struct ixgbe_adapter *adapter,
int j;
for (j = 0; field_ptr[j].val; j++) {
- if (field_ptr[j].off == off &&
- field_ptr[j].mask == m) {
+ if (field_ptr[j].off == off) {
field_ptr[j].val(input, &mask, val, m);
input->filter.formatted.flow_type |=
field_ptr[j].type;
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_model.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_model.h
index ce48872..40d1730 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_model.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_model.h
@@ -65,28 +65,19 @@ static struct ixgbe_mat_field ixgbe_ipv4_fields[] = {
{ .val = NULL } /* terminal node */
};
-static inline int ixgbe_mat_prgm_sport(struct ixgbe_fdir_filter *input,
+static inline int ixgbe_mat_prgm_ports(struct ixgbe_fdir_filter *input,
union ixgbe_atr_input *mask,
u32 val, u32 m)
{
input->filter.formatted.src_port = val & 0xffff;
mask->formatted.src_port = m & 0xffff;
- return 0;
-};
-
-static inline int ixgbe_mat_prgm_dport(struct ixgbe_fdir_filter *input,
- union ixgbe_atr_input *mask,
- u32 val, u32 m)
-{
- input->filter.formatted.dst_port = val & 0xffff;
- mask->formatted.dst_port = m & 0xffff;
+ input->filter.formatted.dst_port = val >> 16;
+ mask->formatted.dst_port = m >> 16;
return 0;
};
static struct ixgbe_mat_field ixgbe_tcp_fields[] = {
- {.off = 0, .mask = 0xffff, .val = ixgbe_mat_prgm_sport,
- .type = IXGBE_ATR_FLOW_TYPE_TCPV4},
- {.off = 2, .mask = 0xffff, .val = ixgbe_mat_prgm_dport,
+ {.off = 0, .mask = 0xffffffff, .val = ixgbe_mat_prgm_ports,
.type = IXGBE_ATR_FLOW_TYPE_TCPV4},
{ .val = NULL } /* terminal node */
};
--
2.1.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [Intel-wired-lan] [PATCH net-next] net: ixgbe: Fix cls_u32 offload support for ports and fields with masks.
@ 2016-03-04 19:47 ` Sridhar Samudrala
0 siblings, 0 replies; 14+ messages in thread
From: Sridhar Samudrala @ 2016-03-04 19:47 UTC (permalink / raw)
To: intel-wired-lan
Fix support for 16 bit source/dest port matches in ixgbe model.
u32 uses a single 32-bit key value for both source and destination ports
starting at offset 0. So replace the 2 functions with a single function
that takes this key value/mask to program both source and dest ports.
Remove the incorrect check for mask in ixgbe_configure_clsu32()
Tested with the following filters:
#tc qdisc add dev p4p1 ingress
#tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
handle 800:0:1 u32 ht 800: \
match ip dst 11.0.0.1/24 match ip src 11.0.0.2/24 action drop
#tc filter del dev p4p1 parent ffff: protocol ip prio 99 \
handle 800:0:1 u32
#tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
handle 1: u32 divisor 1
#tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
handle 800:0:10 u32 ht 800: link 1: \
offset at 0 mask 0f00 shift 6 plus 0 eat match ip protocol 6 ff
#tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
handle 1:0:10 u32 ht 1: \
match tcp src 1024 ffff match tcp dst 80 ffff action drop
Signed-off-by: Sridhar Samudrala <sridhar.samudrala@intel.com>
---
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 3 +--
drivers/net/ethernet/intel/ixgbe/ixgbe_model.h | 17 ++++-------------
2 files changed, 5 insertions(+), 15 deletions(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 10ccd96..c520f98 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -8348,8 +8348,7 @@ static int ixgbe_configure_clsu32(struct ixgbe_adapter *adapter,
int j;
for (j = 0; field_ptr[j].val; j++) {
- if (field_ptr[j].off == off &&
- field_ptr[j].mask == m) {
+ if (field_ptr[j].off == off) {
field_ptr[j].val(input, &mask, val, m);
input->filter.formatted.flow_type |=
field_ptr[j].type;
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_model.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_model.h
index ce48872..40d1730 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_model.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_model.h
@@ -65,28 +65,19 @@ static struct ixgbe_mat_field ixgbe_ipv4_fields[] = {
{ .val = NULL } /* terminal node */
};
-static inline int ixgbe_mat_prgm_sport(struct ixgbe_fdir_filter *input,
+static inline int ixgbe_mat_prgm_ports(struct ixgbe_fdir_filter *input,
union ixgbe_atr_input *mask,
u32 val, u32 m)
{
input->filter.formatted.src_port = val & 0xffff;
mask->formatted.src_port = m & 0xffff;
- return 0;
-};
-
-static inline int ixgbe_mat_prgm_dport(struct ixgbe_fdir_filter *input,
- union ixgbe_atr_input *mask,
- u32 val, u32 m)
-{
- input->filter.formatted.dst_port = val & 0xffff;
- mask->formatted.dst_port = m & 0xffff;
+ input->filter.formatted.dst_port = val >> 16;
+ mask->formatted.dst_port = m >> 16;
return 0;
};
static struct ixgbe_mat_field ixgbe_tcp_fields[] = {
- {.off = 0, .mask = 0xffff, .val = ixgbe_mat_prgm_sport,
- .type = IXGBE_ATR_FLOW_TYPE_TCPV4},
- {.off = 2, .mask = 0xffff, .val = ixgbe_mat_prgm_dport,
+ {.off = 0, .mask = 0xffffffff, .val = ixgbe_mat_prgm_ports,
.type = IXGBE_ATR_FLOW_TYPE_TCPV4},
{ .val = NULL } /* terminal node */
};
--
2.1.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [Intel-wired-lan] [PATCH net-next] net: ixgbe: Fix cls_u32 offload support for ports and fields with masks.
2016-03-04 19:47 ` [Intel-wired-lan] " Sridhar Samudrala
@ 2016-03-04 20:41 ` John Fastabend
-1 siblings, 0 replies; 14+ messages in thread
From: John Fastabend @ 2016-03-04 20:41 UTC (permalink / raw)
To: Sridhar Samudrala, intel-wired-lan, john.r.fastabend, netdev
On 16-03-04 11:47 AM, Sridhar Samudrala wrote:
> Fix support for 16 bit source/dest port matches in ixgbe model.
> u32 uses a single 32-bit key value for both source and destination ports
> starting at offset 0. So replace the 2 functions with a single function
> that takes this key value/mask to program both source and dest ports.
>
> Remove the incorrect check for mask in ixgbe_configure_clsu32()
>
> Tested with the following filters:
>
> #tc qdisc add dev p4p1 ingress
> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
> handle 800:0:1 u32 ht 800: \
> match ip dst 11.0.0.1/24 match ip src 11.0.0.2/24 action drop
>
> #tc filter del dev p4p1 parent ffff: protocol ip prio 99 \
> handle 800:0:1 u32
> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
> handle 1: u32 divisor 1
> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
> handle 800:0:10 u32 ht 800: link 1: \
> offset at 0 mask 0f00 shift 6 plus 0 eat match ip protocol 6 ff
> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
> handle 1:0:10 u32 ht 1: \
> match tcp src 1024 ffff match tcp dst 80 ffff action drop
>
> Signed-off-by: Sridhar Samudrala <sridhar.samudrala@intel.com>
> ---
But this will break setting only dst port or only src port. Do we
actually need three signatures to match? Something like,
static struct ixgbe_mat_field ixgbe_tcp_fields[] = {
{.off = 0, .mask = 0xffffffff, .val = ixgbe_mat_prgm_ports,
.type = IXGBE_ATR_FLOW_TYPE_TCPV4},
{.off = 0, .mask = 0xffff0000, .val = ixgbe_mat_prgm_dport,
.type = IXGBE_ATR_FLOW_TYPE_TCPV4},
{.off = 0, .mask = 0x0000ffff, .val = ixgbe_mat_prgm_sport,
.type = IXGBE_ATR_FLOW_TYPE_TCPV4},
{ .val = NULL } /* terminal node */
};
Also just a reminder if we get multiple fields in a ixgbe_mat_field
struct we need to abort out of the for loop in the cls_u32 configure
function. Actually we can probably just push that as its own patch
to make the core function more versatile/usable.
Thanks,
John
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Intel-wired-lan] [PATCH net-next] net: ixgbe: Fix cls_u32 offload support for ports and fields with masks.
@ 2016-03-04 20:41 ` John Fastabend
0 siblings, 0 replies; 14+ messages in thread
From: John Fastabend @ 2016-03-04 20:41 UTC (permalink / raw)
To: intel-wired-lan
On 16-03-04 11:47 AM, Sridhar Samudrala wrote:
> Fix support for 16 bit source/dest port matches in ixgbe model.
> u32 uses a single 32-bit key value for both source and destination ports
> starting at offset 0. So replace the 2 functions with a single function
> that takes this key value/mask to program both source and dest ports.
>
> Remove the incorrect check for mask in ixgbe_configure_clsu32()
>
> Tested with the following filters:
>
> #tc qdisc add dev p4p1 ingress
> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
> handle 800:0:1 u32 ht 800: \
> match ip dst 11.0.0.1/24 match ip src 11.0.0.2/24 action drop
>
> #tc filter del dev p4p1 parent ffff: protocol ip prio 99 \
> handle 800:0:1 u32
> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
> handle 1: u32 divisor 1
> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
> handle 800:0:10 u32 ht 800: link 1: \
> offset at 0 mask 0f00 shift 6 plus 0 eat match ip protocol 6 ff
> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
> handle 1:0:10 u32 ht 1: \
> match tcp src 1024 ffff match tcp dst 80 ffff action drop
>
> Signed-off-by: Sridhar Samudrala <sridhar.samudrala@intel.com>
> ---
But this will break setting only dst port or only src port. Do we
actually need three signatures to match? Something like,
static struct ixgbe_mat_field ixgbe_tcp_fields[] = {
{.off = 0, .mask = 0xffffffff, .val = ixgbe_mat_prgm_ports,
.type = IXGBE_ATR_FLOW_TYPE_TCPV4},
{.off = 0, .mask = 0xffff0000, .val = ixgbe_mat_prgm_dport,
.type = IXGBE_ATR_FLOW_TYPE_TCPV4},
{.off = 0, .mask = 0x0000ffff, .val = ixgbe_mat_prgm_sport,
.type = IXGBE_ATR_FLOW_TYPE_TCPV4},
{ .val = NULL } /* terminal node */
};
Also just a reminder if we get multiple fields in a ixgbe_mat_field
struct we need to abort out of the for loop in the cls_u32 configure
function. Actually we can probably just push that as its own patch
to make the core function more versatile/usable.
Thanks,
John
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Intel-wired-lan] [PATCH net-next] net: ixgbe: Fix cls_u32 offload support for ports and fields with masks.
2016-03-04 20:41 ` John Fastabend
@ 2016-03-04 21:27 ` Samudrala, Sridhar
-1 siblings, 0 replies; 14+ messages in thread
From: Samudrala, Sridhar @ 2016-03-04 21:27 UTC (permalink / raw)
To: John Fastabend, intel-wired-lan, john.r.fastabend, netdev
On 3/4/2016 12:41 PM, John Fastabend wrote:
> On 16-03-04 11:47 AM, Sridhar Samudrala wrote:
>> Fix support for 16 bit source/dest port matches in ixgbe model.
>> u32 uses a single 32-bit key value for both source and destination ports
>> starting at offset 0. So replace the 2 functions with a single function
>> that takes this key value/mask to program both source and dest ports.
>>
>> Remove the incorrect check for mask in ixgbe_configure_clsu32()
>>
>> Tested with the following filters:
>>
>> #tc qdisc add dev p4p1 ingress
>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>> handle 800:0:1 u32 ht 800: \
>> match ip dst 11.0.0.1/24 match ip src 11.0.0.2/24 action drop
>>
>> #tc filter del dev p4p1 parent ffff: protocol ip prio 99 \
>> handle 800:0:1 u32
>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>> handle 1: u32 divisor 1
>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>> handle 800:0:10 u32 ht 800: link 1: \
>> offset at 0 mask 0f00 shift 6 plus 0 eat match ip protocol 6 ff
>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>> handle 1:0:10 u32 ht 1: \
>> match tcp src 1024 ffff match tcp dst 80 ffff action drop
>>
>> Signed-off-by: Sridhar Samudrala <sridhar.samudrala@intel.com>
>> ---
> But this will break setting only dst port or only src port.
No. This will not break specifying only src or dst port. The value/mask for the
unspecified port will be set to zero. So it should be fine.
For ex:
match tcp src 1024 ffff match tcp dst 80 ffff
=> match 04000050/ffffffff at nexthdr+0
match tcp src 1024 ffff
=> match 04000000/ffff0000 at nexthdr+0
match tcp dst 80 ffff
=> match 00000050/0000ffff at nexthdr+0
> Do we
> actually need three signatures to match? Something like,
>
> static struct ixgbe_mat_field ixgbe_tcp_fields[] = {
> {.off = 0, .mask = 0xffffffff, .val = ixgbe_mat_prgm_ports,
> .type = IXGBE_ATR_FLOW_TYPE_TCPV4},
> {.off = 0, .mask = 0xffff0000, .val = ixgbe_mat_prgm_dport,
> .type = IXGBE_ATR_FLOW_TYPE_TCPV4},
> {.off = 0, .mask = 0x0000ffff, .val = ixgbe_mat_prgm_sport,
> .type = IXGBE_ATR_FLOW_TYPE_TCPV4},
> { .val = NULL } /* terminal node */
> };
>
> Also just a reminder if we get multiple fields in a ixgbe_mat_field
> struct we need to abort out of the for loop in the cls_u32 configure
> function. Actually we can probably just push that as its own patch
> to make the core function more versatile/usable.
>
> Thanks,
> John
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Intel-wired-lan] [PATCH net-next] net: ixgbe: Fix cls_u32 offload support for ports and fields with masks.
@ 2016-03-04 21:27 ` Samudrala, Sridhar
0 siblings, 0 replies; 14+ messages in thread
From: Samudrala, Sridhar @ 2016-03-04 21:27 UTC (permalink / raw)
To: intel-wired-lan
On 3/4/2016 12:41 PM, John Fastabend wrote:
> On 16-03-04 11:47 AM, Sridhar Samudrala wrote:
>> Fix support for 16 bit source/dest port matches in ixgbe model.
>> u32 uses a single 32-bit key value for both source and destination ports
>> starting at offset 0. So replace the 2 functions with a single function
>> that takes this key value/mask to program both source and dest ports.
>>
>> Remove the incorrect check for mask in ixgbe_configure_clsu32()
>>
>> Tested with the following filters:
>>
>> #tc qdisc add dev p4p1 ingress
>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>> handle 800:0:1 u32 ht 800: \
>> match ip dst 11.0.0.1/24 match ip src 11.0.0.2/24 action drop
>>
>> #tc filter del dev p4p1 parent ffff: protocol ip prio 99 \
>> handle 800:0:1 u32
>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>> handle 1: u32 divisor 1
>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>> handle 800:0:10 u32 ht 800: link 1: \
>> offset at 0 mask 0f00 shift 6 plus 0 eat match ip protocol 6 ff
>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>> handle 1:0:10 u32 ht 1: \
>> match tcp src 1024 ffff match tcp dst 80 ffff action drop
>>
>> Signed-off-by: Sridhar Samudrala <sridhar.samudrala@intel.com>
>> ---
> But this will break setting only dst port or only src port.
No. This will not break specifying only src or dst port. The value/mask for the
unspecified port will be set to zero. So it should be fine.
For ex:
match tcp src 1024 ffff match tcp dst 80 ffff
=> match 04000050/ffffffff at nexthdr+0
match tcp src 1024 ffff
=> match 04000000/ffff0000 at nexthdr+0
match tcp dst 80 ffff
=> match 00000050/0000ffff at nexthdr+0
> Do we
> actually need three signatures to match? Something like,
>
> static struct ixgbe_mat_field ixgbe_tcp_fields[] = {
> {.off = 0, .mask = 0xffffffff, .val = ixgbe_mat_prgm_ports,
> .type = IXGBE_ATR_FLOW_TYPE_TCPV4},
> {.off = 0, .mask = 0xffff0000, .val = ixgbe_mat_prgm_dport,
> .type = IXGBE_ATR_FLOW_TYPE_TCPV4},
> {.off = 0, .mask = 0x0000ffff, .val = ixgbe_mat_prgm_sport,
> .type = IXGBE_ATR_FLOW_TYPE_TCPV4},
> { .val = NULL } /* terminal node */
> };
>
> Also just a reminder if we get multiple fields in a ixgbe_mat_field
> struct we need to abort out of the for loop in the cls_u32 configure
> function. Actually we can probably just push that as its own patch
> to make the core function more versatile/usable.
>
> Thanks,
> John
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Intel-wired-lan] [PATCH net-next] net: ixgbe: Fix cls_u32 offload support for ports and fields with masks.
2016-03-04 19:47 ` [Intel-wired-lan] " Sridhar Samudrala
@ 2016-03-04 22:10 ` Jeff Kirsher
-1 siblings, 0 replies; 14+ messages in thread
From: Jeff Kirsher @ 2016-03-04 22:10 UTC (permalink / raw)
To: Sridhar Samudrala, intel-wired-lan, john.r.fastabend, netdev
[-- Attachment #1: Type: text/plain, Size: 1758 bytes --]
On Fri, 2016-03-04 at 11:47 -0800, Sridhar Samudrala wrote:
> Fix support for 16 bit source/dest port matches in ixgbe model.
> u32 uses a single 32-bit key value for both source and destination
> ports
> starting at offset 0. So replace the 2 functions with a single
> function
> that takes this key value/mask to program both source and dest ports.
>
> Remove the incorrect check for mask in ixgbe_configure_clsu32()
>
> Tested with the following filters:
>
> #tc qdisc add dev p4p1 ingress
> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
> handle 800:0:1 u32 ht 800: \
> match ip dst 11.0.0.1/24 match ip src 11.0.0.2/24 action drop
>
> #tc filter del dev p4p1 parent ffff: protocol ip prio 99 \
> handle 800:0:1 u32
> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
> handle 1: u32 divisor 1
> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
> handle 800:0:10 u32 ht 800: link 1: \
> offset at 0 mask 0f00 shift 6 plus 0 eat match ip protocol 6
> ff
> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
> handle 1:0:10 u32 ht 1: \
> match tcp src 1024 ffff match tcp dst 80 ffff action drop
>
> Signed-off-by: Sridhar Samudrala <sridhar.samudrala@intel.com>
> ---
> drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 3 +--
> drivers/net/ethernet/intel/ixgbe/ixgbe_model.h | 17 ++++----------
> ---
> 2 files changed, 5 insertions(+), 15 deletions(-)
Is this v2? If not, why are you re-sending a patch that is already in
my queue? If so, where is the changelog so we know what changed in
this updated v2 of the patch?
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Intel-wired-lan] [PATCH net-next] net: ixgbe: Fix cls_u32 offload support for ports and fields with masks.
@ 2016-03-04 22:10 ` Jeff Kirsher
0 siblings, 0 replies; 14+ messages in thread
From: Jeff Kirsher @ 2016-03-04 22:10 UTC (permalink / raw)
To: intel-wired-lan
On Fri, 2016-03-04 at 11:47 -0800, Sridhar Samudrala wrote:
> Fix support for 16 bit source/dest port matches in ixgbe model.
> u32 uses a single 32-bit key value for both source and destination
> ports
> starting at offset 0. So replace the 2 functions with a single
> function
> that takes this key value/mask to program both source and dest ports.
>
> Remove the incorrect check for mask in ixgbe_configure_clsu32()
>
> Tested with the following filters:
>
> ?#tc qdisc add dev p4p1 ingress
> ?#tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
> ????????handle 800:0:1 u32 ht 800: \
> ????????match ip dst 11.0.0.1/24 match ip src 11.0.0.2/24 action drop
>
> ?#tc filter del dev p4p1 parent ffff: protocol ip prio 99 \
> ????????handle 800:0:1 u32
> ?#tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
> ????????handle 1: u32 divisor 1
> ?#tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
> ????????handle 800:0:10 u32 ht 800: link 1: \
> ????????offset at 0 mask 0f00 shift 6 plus 0 eat match ip protocol 6
> ff
> ?#tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
> ????????handle 1:0:10 u32 ht 1: \
> ????????match tcp src 1024 ffff match tcp dst 80 ffff action drop
>
> Signed-off-by: Sridhar Samudrala <sridhar.samudrala@intel.com>
> ---
> ?drivers/net/ethernet/intel/ixgbe/ixgbe_main.c? |? 3 +--
> ?drivers/net/ethernet/intel/ixgbe/ixgbe_model.h | 17 ++++----------
> ---
> ?2 files changed, 5 insertions(+), 15 deletions(-)
Is this v2? ?If not, why are you re-sending a patch that is already in
my queue? ?If so, where is the changelog so we know what changed in
this updated v2 of the patch?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.osuosl.org/pipermail/intel-wired-lan/attachments/20160304/ec96557f/attachment.asc>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [Intel-wired-lan] [PATCH net-next] net: ixgbe: Fix cls_u32 offload support for ports and fields with masks.
2016-03-04 22:10 ` Jeff Kirsher
@ 2016-03-04 22:16 ` Samudrala, Sridhar
-1 siblings, 0 replies; 14+ messages in thread
From: Samudrala, Sridhar @ 2016-03-04 22:16 UTC (permalink / raw)
To: Jeff Kirsher, intel-wired-lan, john.r.fastabend, netdev
On 3/4/2016 2:10 PM, Jeff Kirsher wrote:
> On Fri, 2016-03-04 at 11:47 -0800, Sridhar Samudrala wrote:
>> Fix support for 16 bit source/dest port matches in ixgbe model.
>> u32 uses a single 32-bit key value for both source and destination
>> ports
>> starting at offset 0. So replace the 2 functions with a single
>> function
>> that takes this key value/mask to program both source and dest ports.
>>
>> Remove the incorrect check for mask in ixgbe_configure_clsu32()
>>
>> Tested with the following filters:
>>
>> #tc qdisc add dev p4p1 ingress
>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>> handle 800:0:1 u32 ht 800: \
>> match ip dst 11.0.0.1/24 match ip src 11.0.0.2/24 action drop
>>
>> #tc filter del dev p4p1 parent ffff: protocol ip prio 99 \
>> handle 800:0:1 u32
>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>> handle 1: u32 divisor 1
>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>> handle 800:0:10 u32 ht 800: link 1: \
>> offset at 0 mask 0f00 shift 6 plus 0 eat match ip protocol 6
>> ff
>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>> handle 1:0:10 u32 ht 1: \
>> match tcp src 1024 ffff match tcp dst 80 ffff action drop
>>
>> Signed-off-by: Sridhar Samudrala <sridhar.samudrala@intel.com>
>> ---
>> drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 3 +--
>> drivers/net/ethernet/intel/ixgbe/ixgbe_model.h | 17 ++++----------
>> ---
>> 2 files changed, 5 insertions(+), 15 deletions(-)
> Is this v2? If not, why are you re-sending a patch that is already in
> my queue? If so, where is the changelog so we know what changed in
> this updated v2 of the patch?
No. This is another patch that fixes other issues on top of the previous
one.
Thanks
Sridhar
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Intel-wired-lan] [PATCH net-next] net: ixgbe: Fix cls_u32 offload support for ports and fields with masks.
@ 2016-03-04 22:16 ` Samudrala, Sridhar
0 siblings, 0 replies; 14+ messages in thread
From: Samudrala, Sridhar @ 2016-03-04 22:16 UTC (permalink / raw)
To: intel-wired-lan
On 3/4/2016 2:10 PM, Jeff Kirsher wrote:
> On Fri, 2016-03-04 at 11:47 -0800, Sridhar Samudrala wrote:
>> Fix support for 16 bit source/dest port matches in ixgbe model.
>> u32 uses a single 32-bit key value for both source and destination
>> ports
>> starting at offset 0. So replace the 2 functions with a single
>> function
>> that takes this key value/mask to program both source and dest ports.
>>
>> Remove the incorrect check for mask in ixgbe_configure_clsu32()
>>
>> Tested with the following filters:
>>
>> #tc qdisc add dev p4p1 ingress
>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>> handle 800:0:1 u32 ht 800: \
>> match ip dst 11.0.0.1/24 match ip src 11.0.0.2/24 action drop
>>
>> #tc filter del dev p4p1 parent ffff: protocol ip prio 99 \
>> handle 800:0:1 u32
>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>> handle 1: u32 divisor 1
>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>> handle 800:0:10 u32 ht 800: link 1: \
>> offset at 0 mask 0f00 shift 6 plus 0 eat match ip protocol 6
>> ff
>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>> handle 1:0:10 u32 ht 1: \
>> match tcp src 1024 ffff match tcp dst 80 ffff action drop
>>
>> Signed-off-by: Sridhar Samudrala <sridhar.samudrala@intel.com>
>> ---
>> drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 3 +--
>> drivers/net/ethernet/intel/ixgbe/ixgbe_model.h | 17 ++++----------
>> ---
>> 2 files changed, 5 insertions(+), 15 deletions(-)
> Is this v2? If not, why are you re-sending a patch that is already in
> my queue? If so, where is the changelog so we know what changed in
> this updated v2 of the patch?
No. This is another patch that fixes other issues on top of the previous
one.
Thanks
Sridhar
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Intel-wired-lan] [PATCH net-next] net: ixgbe: Fix cls_u32 offload support for ports and fields with masks.
2016-03-04 21:27 ` Samudrala, Sridhar
(?)
@ 2016-03-04 22:22 ` John Fastabend
2016-03-04 23:07 ` Samudrala, Sridhar
-1 siblings, 1 reply; 14+ messages in thread
From: John Fastabend @ 2016-03-04 22:22 UTC (permalink / raw)
To: intel-wired-lan
On 16-03-04 01:27 PM, Samudrala, Sridhar wrote:
> On 3/4/2016 12:41 PM, John Fastabend wrote:
>> On 16-03-04 11:47 AM, Sridhar Samudrala wrote:
>>> Fix support for 16 bit source/dest port matches in ixgbe model.
>>> u32 uses a single 32-bit key value for both source and destination ports
>>> starting at offset 0. So replace the 2 functions with a single function
>>> that takes this key value/mask to program both source and dest ports.
>>>
>>> Remove the incorrect check for mask in ixgbe_configure_clsu32()
>>>
>>> Tested with the following filters:
>>>
>>> #tc qdisc add dev p4p1 ingress
>>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>>> handle 800:0:1 u32 ht 800: \
>>> match ip dst 11.0.0.1/24 match ip src 11.0.0.2/24 action drop
>>>
>>> #tc filter del dev p4p1 parent ffff: protocol ip prio 99 \
>>> handle 800:0:1 u32
>>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>>> handle 1: u32 divisor 1
>>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>>> handle 800:0:10 u32 ht 800: link 1: \
>>> offset at 0 mask 0f00 shift 6 plus 0 eat match ip protocol 6 ff
>>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>>> handle 1:0:10 u32 ht 1: \
>>> match tcp src 1024 ffff match tcp dst 80 ffff action drop
>>>
>>> Signed-off-by: Sridhar Samudrala <sridhar.samudrala@intel.com>
>>> ---
>> But this will break setting only dst port or only src port.
>
> No. This will not break specifying only src or dst port. The value/mask
> for the
> unspecified port will be set to zero. So it should be fine.
>
> For ex:
> match tcp src 1024 ffff match tcp dst 80 ffff
> => match 04000050/ffffffff at nexthdr+0
> match tcp src 1024 ffff
> => match 04000000/ffff0000 at nexthdr+0
> match tcp dst 80 ffff
> => match 00000050/0000ffff at nexthdr+0
>
>
>> Do we
>> actually need three signatures to match? Something like,
>>
>> static struct ixgbe_mat_field ixgbe_tcp_fields[] = {
>> {.off = 0, .mask = 0xffffffff, .val = ixgbe_mat_prgm_ports,
>> .type = IXGBE_ATR_FLOW_TYPE_TCPV4},
>> {.off = 0, .mask = 0xffff0000, .val = ixgbe_mat_prgm_dport,
>> .type = IXGBE_ATR_FLOW_TYPE_TCPV4},
>> {.off = 0, .mask = 0x0000ffff, .val = ixgbe_mat_prgm_sport,
>> .type = IXGBE_ATR_FLOW_TYPE_TCPV4},
>> { .val = NULL } /* terminal node */
>> };
>>
>> Also just a reminder if we get multiple fields in a ixgbe_mat_field
>> struct we need to abort out of the for loop in the cls_u32 configure
>> function. Actually we can probably just push that as its own patch
>> to make the core function more versatile/usable.
>>
>> Thanks,
>> John
>
Dropped netdev no reason to push mail to netdev that has to do with our
driver internals.
OK I see so you dropped the .mask check in fact you actually put it
there in the commit message I just missed the detail/implication.
I think this is fine and it allows supporting mask entries now which
I blocked in the initial submission. But with this is there any reason
to have a mask field in ixgbe_mat_field? We could probably do this with
two patches, one to drop the 'mask' field and check and another to fix
the ixgbe_tcp_fields patch?
Thanks,
John
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Intel-wired-lan] [PATCH net-next] net: ixgbe: Fix cls_u32 offload support for ports and fields with masks.
2016-03-04 22:22 ` John Fastabend
@ 2016-03-04 23:07 ` Samudrala, Sridhar
2016-03-04 23:07 ` John Fastabend
2016-03-04 23:09 ` John Fastabend
0 siblings, 2 replies; 14+ messages in thread
From: Samudrala, Sridhar @ 2016-03-04 23:07 UTC (permalink / raw)
To: intel-wired-lan
On 3/4/2016 2:22 PM, John Fastabend wrote:
> On 16-03-04 01:27 PM, Samudrala, Sridhar wrote:
>> On 3/4/2016 12:41 PM, John Fastabend wrote:
>>> On 16-03-04 11:47 AM, Sridhar Samudrala wrote:
>>>> Fix support for 16 bit source/dest port matches in ixgbe model.
>>>> u32 uses a single 32-bit key value for both source and destination ports
>>>> starting at offset 0. So replace the 2 functions with a single function
>>>> that takes this key value/mask to program both source and dest ports.
>>>>
>>>> Remove the incorrect check for mask in ixgbe_configure_clsu32()
>>>>
>>>> Tested with the following filters:
>>>>
>>>> #tc qdisc add dev p4p1 ingress
>>>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>>>> handle 800:0:1 u32 ht 800: \
>>>> match ip dst 11.0.0.1/24 match ip src 11.0.0.2/24 action drop
>>>>
>>>> #tc filter del dev p4p1 parent ffff: protocol ip prio 99 \
>>>> handle 800:0:1 u32
>>>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>>>> handle 1: u32 divisor 1
>>>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>>>> handle 800:0:10 u32 ht 800: link 1: \
>>>> offset at 0 mask 0f00 shift 6 plus 0 eat match ip protocol 6 ff
>>>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>>>> handle 1:0:10 u32 ht 1: \
>>>> match tcp src 1024 ffff match tcp dst 80 ffff action drop
>>>>
>>>> Signed-off-by: Sridhar Samudrala <sridhar.samudrala@intel.com>
>>>> ---
>>> But this will break setting only dst port or only src port.
>> No. This will not break specifying only src or dst port. The value/mask
>> for the
>> unspecified port will be set to zero. So it should be fine.
>>
>> For ex:
>> match tcp src 1024 ffff match tcp dst 80 ffff
>> => match 04000050/ffffffff at nexthdr+0
>> match tcp src 1024 ffff
>> => match 04000000/ffff0000 at nexthdr+0
>> match tcp dst 80 ffff
>> => match 00000050/0000ffff at nexthdr+0
>>
>>
>>> Do we
>>> actually need three signatures to match? Something like,
>>>
>>> static struct ixgbe_mat_field ixgbe_tcp_fields[] = {
>>> {.off = 0, .mask = 0xffffffff, .val = ixgbe_mat_prgm_ports,
>>> .type = IXGBE_ATR_FLOW_TYPE_TCPV4},
>>> {.off = 0, .mask = 0xffff0000, .val = ixgbe_mat_prgm_dport,
>>> .type = IXGBE_ATR_FLOW_TYPE_TCPV4},
>>> {.off = 0, .mask = 0x0000ffff, .val = ixgbe_mat_prgm_sport,
>>> .type = IXGBE_ATR_FLOW_TYPE_TCPV4},
>>> { .val = NULL } /* terminal node */
>>> };
>>>
>>> Also just a reminder if we get multiple fields in a ixgbe_mat_field
>>> struct we need to abort out of the for loop in the cls_u32 configure
>>> function. Actually we can probably just push that as its own patch
>>> to make the core function more versatile/usable.
>>>
>>> Thanks,
>>> John
> Dropped netdev no reason to push mail to netdev that has to do with our
> driver internals.
>
> OK I see so you dropped the .mask check in fact you actually put it
> there in the commit message I just missed the detail/implication.
>
> I think this is fine and it allows supporting mask entries now which
> I blocked in the initial submission. But with this is there any reason
> to have a mask field in ixgbe_mat_field? We could probably do this with
> two patches, one to drop the 'mask' field and check and another to fix
> the ixgbe_tcp_fields patch?
OK. will remove the 'mask' field and resubmit as 2 patches.
Thanks
Sridhar
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Intel-wired-lan] [PATCH net-next] net: ixgbe: Fix cls_u32 offload support for ports and fields with masks.
2016-03-04 23:07 ` Samudrala, Sridhar
@ 2016-03-04 23:07 ` John Fastabend
2016-03-04 23:09 ` John Fastabend
1 sibling, 0 replies; 14+ messages in thread
From: John Fastabend @ 2016-03-04 23:07 UTC (permalink / raw)
To: intel-wired-lan
On 16-03-04 03:07 PM, Samudrala, Sridhar wrote:
>
>
> On 3/4/2016 2:22 PM, John Fastabend wrote:
>> On 16-03-04 01:27 PM, Samudrala, Sridhar wrote:
>>> On 3/4/2016 12:41 PM, John Fastabend wrote:
>>>> On 16-03-04 11:47 AM, Sridhar Samudrala wrote:
>>>>> Fix support for 16 bit source/dest port matches in ixgbe model.
>>>>> u32 uses a single 32-bit key value for both source and destination
>>>>> ports
>>>>> starting at offset 0. So replace the 2 functions with a single
>>>>> function
>>>>> that takes this key value/mask to program both source and dest ports.
>>>>>
>>>>> Remove the incorrect check for mask in ixgbe_configure_clsu32()
>>>>>
>>>>> Tested with the following filters:
>>>>>
>>>>> #tc qdisc add dev p4p1 ingress
>>>>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>>>>> handle 800:0:1 u32 ht 800: \
>>>>> match ip dst 11.0.0.1/24 match ip src 11.0.0.2/24 action drop
>>>>>
>>>>> #tc filter del dev p4p1 parent ffff: protocol ip prio 99 \
>>>>> handle 800:0:1 u32
>>>>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>>>>> handle 1: u32 divisor 1
>>>>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>>>>> handle 800:0:10 u32 ht 800: link 1: \
>>>>> offset at 0 mask 0f00 shift 6 plus 0 eat match ip protocol 6 ff
>>>>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>>>>> handle 1:0:10 u32 ht 1: \
>>>>> match tcp src 1024 ffff match tcp dst 80 ffff action drop
>>>>>
>>>>> Signed-off-by: Sridhar Samudrala <sridhar.samudrala@intel.com>
>>>>> ---
>>>> But this will break setting only dst port or only src port.
>>> No. This will not break specifying only src or dst port. The value/mask
>>> for the
>>> unspecified port will be set to zero. So it should be fine.
>>>
>>> For ex:
>>> match tcp src 1024 ffff match tcp dst 80 ffff
>>> => match 04000050/ffffffff at nexthdr+0
>>> match tcp src 1024 ffff
>>> => match 04000000/ffff0000 at nexthdr+0
>>> match tcp dst 80 ffff
>>> => match 00000050/0000ffff at nexthdr+0
>>>
>>>
>>>> Do we
>>>> actually need three signatures to match? Something like,
>>>>
>>>> static struct ixgbe_mat_field ixgbe_tcp_fields[] = {
>>>> {.off = 0, .mask = 0xffffffff, .val = ixgbe_mat_prgm_ports,
>>>> .type = IXGBE_ATR_FLOW_TYPE_TCPV4},
>>>> {.off = 0, .mask = 0xffff0000, .val = ixgbe_mat_prgm_dport,
>>>> .type = IXGBE_ATR_FLOW_TYPE_TCPV4},
>>>> {.off = 0, .mask = 0x0000ffff, .val = ixgbe_mat_prgm_sport,
>>>> .type = IXGBE_ATR_FLOW_TYPE_TCPV4},
>>>> { .val = NULL } /* terminal node */
>>>> };
>>>>
>>>> Also just a reminder if we get multiple fields in a ixgbe_mat_field
>>>> struct we need to abort out of the for loop in the cls_u32 configure
>>>> function. Actually we can probably just push that as its own patch
>>>> to make the core function more versatile/usable.
>>>>
>>>> Thanks,
>>>> John
>> Dropped netdev no reason to push mail to netdev that has to do with our
>> driver internals.
>>
>> OK I see so you dropped the .mask check in fact you actually put it
>> there in the commit message I just missed the detail/implication.
>>
>> I think this is fine and it allows supporting mask entries now which
>> I blocked in the initial submission. But with this is there any reason
>> to have a mask field in ixgbe_mat_field? We could probably do this with
>> two patches, one to drop the 'mask' field and check and another to fix
>> the ixgbe_tcp_fields patch?
>
> OK. will remove the 'mask' field and resubmit as 2 patches.
>
> Thanks
> Sridhar
Great thanks nice catch / improvements.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Intel-wired-lan] [PATCH net-next] net: ixgbe: Fix cls_u32 offload support for ports and fields with masks.
2016-03-04 23:07 ` Samudrala, Sridhar
2016-03-04 23:07 ` John Fastabend
@ 2016-03-04 23:09 ` John Fastabend
1 sibling, 0 replies; 14+ messages in thread
From: John Fastabend @ 2016-03-04 23:09 UTC (permalink / raw)
To: intel-wired-lan
On 16-03-04 03:07 PM, Samudrala, Sridhar wrote:
>
>
> On 3/4/2016 2:22 PM, John Fastabend wrote:
>> On 16-03-04 01:27 PM, Samudrala, Sridhar wrote:
>>> On 3/4/2016 12:41 PM, John Fastabend wrote:
>>>> On 16-03-04 11:47 AM, Sridhar Samudrala wrote:
>>>>> Fix support for 16 bit source/dest port matches in ixgbe model.
>>>>> u32 uses a single 32-bit key value for both source and destination
>>>>> ports
>>>>> starting at offset 0. So replace the 2 functions with a single
>>>>> function
>>>>> that takes this key value/mask to program both source and dest ports.
>>>>>
>>>>> Remove the incorrect check for mask in ixgbe_configure_clsu32()
>>>>>
>>>>> Tested with the following filters:
>>>>>
>>>>> #tc qdisc add dev p4p1 ingress
>>>>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>>>>> handle 800:0:1 u32 ht 800: \
>>>>> match ip dst 11.0.0.1/24 match ip src 11.0.0.2/24 action drop
>>>>>
>>>>> #tc filter del dev p4p1 parent ffff: protocol ip prio 99 \
>>>>> handle 800:0:1 u32
>>>>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>>>>> handle 1: u32 divisor 1
>>>>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>>>>> handle 800:0:10 u32 ht 800: link 1: \
>>>>> offset at 0 mask 0f00 shift 6 plus 0 eat match ip protocol 6 ff
>>>>> #tc filter add dev p4p1 parent ffff: protocol ip prio 99 \
>>>>> handle 1:0:10 u32 ht 1: \
>>>>> match tcp src 1024 ffff match tcp dst 80 ffff action drop
>>>>>
>>>>> Signed-off-by: Sridhar Samudrala <sridhar.samudrala@intel.com>
>>>>> ---
>>>> But this will break setting only dst port or only src port.
>>> No. This will not break specifying only src or dst port. The value/mask
>>> for the
>>> unspecified port will be set to zero. So it should be fine.
>>>
>>> For ex:
>>> match tcp src 1024 ffff match tcp dst 80 ffff
>>> => match 04000050/ffffffff at nexthdr+0
>>> match tcp src 1024 ffff
>>> => match 04000000/ffff0000 at nexthdr+0
>>> match tcp dst 80 ffff
>>> => match 00000050/0000ffff at nexthdr+0
>>>
>>>
>>>> Do we
>>>> actually need three signatures to match? Something like,
>>>>
>>>> static struct ixgbe_mat_field ixgbe_tcp_fields[] = {
>>>> {.off = 0, .mask = 0xffffffff, .val = ixgbe_mat_prgm_ports,
>>>> .type = IXGBE_ATR_FLOW_TYPE_TCPV4},
>>>> {.off = 0, .mask = 0xffff0000, .val = ixgbe_mat_prgm_dport,
>>>> .type = IXGBE_ATR_FLOW_TYPE_TCPV4},
>>>> {.off = 0, .mask = 0x0000ffff, .val = ixgbe_mat_prgm_sport,
>>>> .type = IXGBE_ATR_FLOW_TYPE_TCPV4},
>>>> { .val = NULL } /* terminal node */
>>>> };
>>>>
>>>> Also just a reminder if we get multiple fields in a ixgbe_mat_field
>>>> struct we need to abort out of the for loop in the cls_u32 configure
>>>> function. Actually we can probably just push that as its own patch
>>>> to make the core function more versatile/usable.
>>>>
>>>> Thanks,
>>>> John
>> Dropped netdev no reason to push mail to netdev that has to do with our
>> driver internals.
>>
>> OK I see so you dropped the .mask check in fact you actually put it
>> there in the commit message I just missed the detail/implication.
>>
>> I think this is fine and it allows supporting mask entries now which
>> I blocked in the initial submission. But with this is there any reason
>> to have a mask field in ixgbe_mat_field? We could probably do this with
>> two patches, one to drop the 'mask' field and check and another to fix
>> the ixgbe_tcp_fields patch?
>
> OK. will remove the 'mask' field and resubmit as 2 patches.
>
> Thanks
> Sridhar
Great nice catch / improvements. By the way my goal here is to get
to the point where we can share this across drivers and just change
the *model.h file.
.John
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2016-03-04 23:09 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-04 19:47 [PATCH net-next] net: ixgbe: Fix cls_u32 offload support for ports and fields with masks Sridhar Samudrala
2016-03-04 19:47 ` [Intel-wired-lan] " Sridhar Samudrala
2016-03-04 20:41 ` John Fastabend
2016-03-04 20:41 ` John Fastabend
2016-03-04 21:27 ` Samudrala, Sridhar
2016-03-04 21:27 ` Samudrala, Sridhar
2016-03-04 22:22 ` John Fastabend
2016-03-04 23:07 ` Samudrala, Sridhar
2016-03-04 23:07 ` John Fastabend
2016-03-04 23:09 ` John Fastabend
2016-03-04 22:10 ` Jeff Kirsher
2016-03-04 22:10 ` Jeff Kirsher
2016-03-04 22:16 ` Samudrala, Sridhar
2016-03-04 22:16 ` Samudrala, Sridhar
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.