On Mon, 2021-03-29 at 12:33 +0800, 高钧浩 wrote:
> Hi borisp, saeedm
> 
>      I have seen mlx5 driver in 5.12.0-rc4 kernel, then find that
> mlx5e_set_rss_hash_opt only support tcp4/udp4/tcp6/udp6. So mlx5
> kernel driver doesn't support esp4 rss? Then do you have any plan to
> support esp4 or other latest mlx5 driver have supported esp4? Then
> does NVIDIA Mellanox ConnectX-6 Ethernet Adapter Cards support esp4
> rss in hardware?
> 

Hi Juhano

we do support RSS ESP out of the box on the SPI, src and dst IP fields

#define MLX5_HASH_IP_IPSEC_SPI  (MLX5_HASH_FIELD_SEL_SRC_IP   |\
                                 MLX5_HASH_FIELD_SEL_DST_IP   |\
                                 MLX5_HASH_FIELD_SEL_IPSEC_SPI)

[MLX5E_TT_IPV4_IPSEC_ESP] = { .l3_prot_type = MLX5_L3_PROT_TYPE_IPV4,
                              .l4_prot_type = 0,
                              .rx_hash_fields =
MLX5_HASH_IP_IPSEC_SPI,
},

[MLX5E_TT_IPV6_IPSEC_ESP] = { .l3_prot_type = MLX5_L3_PROT_TYPE_IPV6,
                              .l4_prot_type = 0,
                              .rx_hash_fields =
MLX5_HASH_IP_IPSEC_SPI,
},

But we don't allow rss_hash_opt at the moment. 

what exactly are you looking for ?

> static int mlx5e_set_rss_hash_opt(struct mlx5e_priv *priv,
>                  struct ethtool_rxnfc *nfc)
> {
>     int inlen = MLX5_ST_SZ_BYTES(modify_tir_in);
>     enum mlx5e_traffic_types tt;
>     u8 rx_hash_field = 0;
>     void *in;
>     tt = flow_type_to_traffic_type(nfc->flow_type);
>     if (tt == MLX5E_NUM_INDIR_TIRS)
>         return -EINVAL;
>     /* RSS does not support anything other than hashing to queues
>      * on src IP, dest IP, TCP/UDP src port and TCP/UDP dest
>      * port.
>      */
>     if (nfc->flow_type != TCP_V4_FLOW &&
>       nfc->flow_type != TCP_V6_FLOW &&
>       nfc->flow_type != UDP_V4_FLOW &&
>       nfc->flow_type != UDP_V6_FLOW)
>         return -EOPNOTSUPP;
> 
> Best Regards,
> Junhao


Reply via email to