]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
Merge tag 'mlx5e-updates-2018-05-25' of git://git.kernel.org/pub/scm/linux/kernel...
authorDavid S. Miller <davem@davemloft.net>
Tue, 29 May 2018 13:45:13 +0000 (09:45 -0400)
committerDavid S. Miller <davem@davemloft.net>
Tue, 29 May 2018 13:45:13 +0000 (09:45 -0400)
Saeed Mahameed says:

====================
mlx5e-updates-2018-05-25

This series includes updates for mlx5e netdev driver.

1) Allowr flow based VF vport mirroring under sriov switchdev scheme,
added support for offloading the TC mirred mirror sub-action, from
Chris Mi.

=================
From: Or Gerlitz <ogerlitz@mellanox.com>

The user will typically set the actions order such that the mirror
port (mirror VF) sees packets as the original port (VF under
mirroring) sent them or as it will receive them. In the general case,
it means that packets are potentially sent to the mirror port before
or after some actions were applied on them.

To properly do that, we follow on the exact action order as set for
the flow and make sure this will also be the case when we program the
HW offload.

If all the actions should apply before forwarding to the mirror and dest port,
mirroring is just multicasting to the two vports. Otherwise, we split
the TC flow to two HW rules, where the 1st applies only the actions
needed up to the mirror (if there are such) and the 2nd the rest of
the actions plus the forwarding to the dest vport.
=================

2) Move to order-0 only allocations (using fragmented work queues) for all
work queues used by the driver, RX and TX descriptor rings
(RQs, SQs and Completion Queues (CQs)), from Tariq Toukan.

3) Avoid resetting netdevice statistics on netdevice
state changes, from Eran Ben Elisha.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
1  2 
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c

index a6a92c4f5fbbb3ec5dedc997cb7dd11124ca111b,bfef73b37fbc2f92ca6367ba57d303882d5f7b48..5551e4e22ad047798ea98e00a73c88b0b2a33f9a
@@@ -694,10 -677,7 +716,10 @@@ static inline void mlx5e_handle_csum(st
                        skb->csum = csum_partial(skb->data + ETH_HLEN,
                                                 network_depth - ETH_HLEN,
                                                 skb->csum);
-               rq->stats.csum_complete++;
 +              if (unlikely(netdev->features & NETIF_F_RXFCS))
 +                      skb->csum = csum_add(skb->csum,
 +                                           (__force __wsum)mlx5e_get_fcs(skb));
+               stats->csum_complete++;
                return;
        }