• Michael Chan's avatar
    net: Introduce NETIF_F_GRO_HW. · fb1f5f79
    Michael Chan authored
    Introduce NETIF_F_GRO_HW feature flag for NICs that support hardware
    GRO.  With this flag, we can now independently turn on or off hardware
    GRO when GRO is on.  Previously, drivers were using NETIF_F_GRO to
    control hardware GRO and so it cannot be independently turned on or
    off without affecting GRO.
    
    Hardware GRO (just like GRO) guarantees that packets can be re-segmented
    by TSO/GSO to reconstruct the original packet stream.  Logically,
    GRO_HW should depend on GRO since it a subset, but we will let
    individual drivers enforce this dependency as they see fit.
    
    Since NETIF_F_GRO is not propagated between upper and lower devices,
    NETIF_F_GRO_HW should follow suit since it is a subset of GRO.  In other
    words, a lower device can independent have GRO/GRO_HW enabled or disabled
    and no feature propagation is required.  This will preserve the current
    GRO behavior.  This can be changed later if we decide to propagate GRO/
    GRO_HW/RXCSUM from upper to lower devices.
    
    Cc: Ariel Elior <Ariel.Elior@cavium.com>
    Cc: everest-linux-l2@cavium.com
    Signed-off-by: default avatarMichael Chan <michael.chan@broadcom.com>
    Acked-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    fb1f5f79
dev.c 221 KB