Skip to content
  • Achiad Shochat's avatar
    net/mlx5e: Unify the RX flow · 4cbeaff5
    Achiad Shochat authored
    
    
    Generally an RX packet flows through the following objects:
    Flow table --> TIR --> RQT --> RQ
    
    Where:
    - TIR stands for "Transport Interface Receive", defining the RSS and
      LRO paramaters.
    - RQT stands for "RQ Table", implementing the RSS indirection table.
    - RQ stands for "Receive Queue"
    
    For flows that do not need LRO, nor RSS, the driver made a shortcut to
    the above RX flow by pointing to the RQ directly from the TIR, yielding
    this flow:
    Flow table --> TIR --> RQ
    
    In this commit we remove this shortcut by "inserting" a single-RQ RQT
    between the TIR and the RQ, i.e RX packets will reach the same RQ but
    will go through an RQT of size 1, pointing to just a single RQ.
    
    This way the RX traffic re-direction to/from the "Drop RQ" will be more
    uniform (AKA "one flow"), as it will involve only RQTs re-direction and
    no TIRs re-direction.
    
    Signed-off-by: default avatarAchiad Shochat <achiad@mellanox.com>
    Signed-off-by: default avatarAmir Vadai <amirv@mellanox.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    4cbeaff5