• Aviv Heller's avatar
    net/mlx5: Add HW interfaces used by LAG · 84df61eb
    Aviv Heller authored
    Exposed LAG commands enum and layouts:
    - CREATE_LAG
      HW enters LAG mode:
      RoCE traffic from port two is received on PF0 core dev.
      Allows to set tx_affinity (tx port) for QPs and TISes.
      Allows to port remap QPs and TISes, overriding their
      tx_affinity behavior.
    
    - MODIFY_LAG
      Remap QPs and TISes to another port.
    
    - QUERY_LAG
      Query whether LAG mode is active.
    
    - DESTROY_LAG
      HW exits LAG mode, returning to non-LAG behavior.
    
    - CREATE_VPORT_LAG
      Merge Ethernet flow steering, such that traffic received on port
      two jumps to PF0 root flow table.
    
      Available only in LAG mode.
    
    - DESTROY_VPORT_LAG
      Ethernet flow steering returns to non-LAG behavior.
    
    Caps added:
    - lag_master
      Driver is in charge of managing the LAG.
      This is currently the only option.
    
    - num_lag_ports
      LAG is supported only if this field's value is 2.
    
    Other fields:
    - QP/TIS tx port affinity
      During LAG, this field controls on which port a QP or TIS resides.
    
    - TIS strict tx affinity
      When this field is set, the TIS will not be subject to port remap by
      CREATE_LAG/MODIFY_LAG.
    
    - LAG demux flow table
      Flow table used for redirecting non user-space traffic back to
      PF1 root flow table, if the packet was received on port two.
    Signed-off-by: default avatarAviv Heller <avivh@mellanox.com>
    Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: default avatarLeon Romanovsky <leon@kernel.org>
    84df61eb
cmd.c 45.3 KB