• Jesus Sanchez-Palencia's avatar
    igb: Add support for ETF offload · 3048cf84
    Jesus Sanchez-Palencia authored
    Implement HW offload support for SO_TXTIME through igb's Launchtime
    feature. This is done by extending igb_setup_tc() so it supports
    TC_SETUP_QDISC_ETF and configuring i210 so time based transmit
    arbitration is enabled.
    
    The FQTSS transmission mode added before is extended so strict
    priority (SP) queues wait for stream reservation (SR) ones.
    igb_config_tx_modes() is extended so it can support enabling/disabling
    Launchtime following the previous approach used for the credit-based
    shaper (CBS).
    
    As the previous flow, FQTSS transmission mode is enabled automatically
    by the driver once Launchtime (or CBS, as before) is enabled.
    Similarly, it's automatically disabled when the feature is disabled
    for the last queue that had it setup on.
    
    The driver just consumes the transmit times from the skbuffs directly,
    so no special handling is done in case an 'invalid' time is provided.
    We assume this has been handled by the ETF qdisc already.
    Signed-off-by: default avatarJesus Sanchez-Palencia <jesus.sanchez-palencia@intel.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    3048cf84
igb_main.c 258 KB