• Matan Barak's avatar
    net/mlx4: Add support for A0 steering · 7d077cd3
    Matan Barak authored
    Add the required firmware commands for A0 steering and a way to enable
    that. The firmware support focuses on INIT_HCA, QUERY_HCA, QUERY_PORT,
    QUERY_DEV_CAP and QUERY_FUNC_CAP commands. Those commands are used
    to configure and query the device.
    
    The different A0 DMFS (steering) modes are:
    
    Static - optimized performance, but flow steering rules are
    limited. This mode should be choosed explicitly by the user
    in order to be used.
    
    Dynamic - this mode should be explicitly choosed by the user.
    In this mode, the FW works in optimized steering mode as long as
    it can and afterwards automatically drops to classic (full) DMFS.
    
    Disable - this mode should be explicitly choosed by the user.
    The user instructs the system not to use optimized steering, even if
    the FW supports Dynamic A0 DMFS (and thus will be able to use optimized
    steering in Default A0 DMFS mode).
    
    Default - this mode is implicitly choosed. In this mode, if the FW
    supports Dynamic A0 DMFS, it'll work in this mode. Otherwise, it'll
    work at Disable A0 DMFS mode.
    
    Under SRIOV configuration, when the A0 steering mode is enabled,
    older guest VF drivers who aren't using the RX QP allocation flag
    (MLX4_RESERVE_A0_QP) will get a QP from the general range and
    fail when attempting to register a steering rule. To avoid that,
    the PF context behaviour is changed once on A0 static mode, to
    require support for the allocation flag in VF drivers too.
    
    In order to enable A0 steering, we use log_num_mgm_entry_size param.
    If the value of the parameter is not positive, we treat the absolute
    value of log_num_mgm_entry_size as a bit field. Setting bit 2 of this
    bit field enables static A0 steering.
    Signed-off-by: default avatarMatan Barak <matanb@mellanox.com>
    Signed-off-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    7d077cd3
qp.c 25.2 KB