lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 7 Jan 2019 14:00:33 +0000
From:   Shay Agroskin <shayag@...lanox.com>
To:     Michael Chan <michael.chan@...adcom.com>,
        "davem@...emloft.net" <davem@...emloft.net>
CC:     "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
        "andrew.gospodarek@...adcom.com" <andrew.gospodarek@...adcom.com>,
        Tariq Toukan <tariqt@...lanox.com>,
        Eran Ben Elisha <eranbe@...lanox.com>,
        Saeed Mahameed <saeedm@...lanox.com>
Subject: RE: [PATCH net-next v5 0/5] Introduce NETIF_F_GRO_HW

Hi,
To use NETIF_F_GRO_HW offload, we first need to double-check what are its exact well-defined requirements/expectations.

1) What is the defined relation between the (SW) GRO (that can be easily modified in kernel) and HW-GRO that
should be a well-defined HW capability ?

2) While we understand that implementing GRO in HW can result in performance gain, is HW-GRO's
singularity in its ability to construct packets that can be re-segmented? (as appose to LRO).
What else is expected from HW when turning it on?

3) For what I managed to gather from different mail-threads/presentations,
this is the list of conditions that makes an aggregated packet reversible:

a) All segments (aggregated packets) must be of the same size (except possibly the last one).
(This in order to know each segments size, when re-segmenting an aggregated packet)

b) IP ID must be incrementing unless DF is 
(To have  the whole 4th layer, in order to know if a packet belongs to a certain flow)

c) Also, all the other fields need to be the same to belong to the same flow and be aggregated.

Any thoughts? Do I miss anything here ?
Thanks,
Shay Agroskin

-----Original Message-----
From: netdev-owner@...r.kernel.org <netdev-owner@...r.kernel.org> On Behalf Of Michael Chan
Sent: Saturday, December 16, 2017 10:10 AM
To: davem@...emloft.net
Cc: netdev@...r.kernel.org; andrew.gospodarek@...adcom.com
Subject: [PATCH net-next v5 0/5] Introduce NETIF_F_GRO_HW

Introduce NETIF_F_GRO_HW feature flag and convert drivers that support hardware GRO to use the new flag.

v5:
- Documentation changes requested by Alexander Duyck.
- bnx2x changes requested by Manish Chopra to enable LRO by default, and disable GRO_HW if disable_tpa module parameter is set.

v4:
- more changes requested by Alexander Duyck:
- check GRO_HW/GRO dependency in drivers's ndo_fix_features().
- Reverse the order of RXCSUM and GRO_HW dependency check in netdev_fix_features().
- No propagation in netdev_disable_gro_hw().

v3:
- Let driver's ndo_fix_features() disable NETIF_F_LRO when NETIF_F_GRO_HW is set instead of doing it in common netdev_fix_features().

v2:
- NETIF_F_GRO_HW flag propagation between upper and lower devices not required (see patch 1).
- NETIF_F_GRO_HW depends on NETIF_F_GRO and NETIF_F_RXCSUM.
- Add dev_disable_gro_hw() to disable GRO_HW for generic XDP.
- Use ndo_fix_features() on all 3 drivers to drop GRO_HW when it is not supported

Michael Chan (5):
  net: Introduce NETIF_F_GRO_HW.
  net: Disable GRO_HW when generic XDP is installed on a device.
  bnxt_en: Use NETIF_F_GRO_HW.
  bnx2x: Use NETIF_F_GRO_HW.
  qede: Use NETIF_F_GRO_HW.

 Documentation/networking/netdev-features.txt     |  9 +++++++
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c  | 24 +++++++++----------  drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c |  8 ++++---
 drivers/net/ethernet/broadcom/bnxt/bnxt.c        | 27 +++++++++++++++------
 drivers/net/ethernet/qlogic/qede/qede.h          |  2 ++
 drivers/net/ethernet/qlogic/qede/qede_ethtool.c  |  3 +++
 drivers/net/ethernet/qlogic/qede/qede_filter.c   | 21 +++++++++++------
 drivers/net/ethernet/qlogic/qede/qede_main.c     | 17 +++++---------
 include/linux/netdev_features.h                  |  3 +++
 net/core/dev.c                                   | 30 ++++++++++++++++++++++++
 net/core/ethtool.c                               |  1 +
 11 files changed, 105 insertions(+), 40 deletions(-)

--
1.8.3.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ