On Wed, 18 Dec 2024 17:26:00 +0800
Junlong Wang <wang.junlo...@zte.com.cn> wrote:

> provided rss hash config/update, reta update/get ops.
> 
> Signed-off-by: Junlong Wang <wang.junlo...@zte.com.cn>
> ---
>  doc/guides/nics/features/zxdh.ini  |   3 +
>  doc/guides/nics/zxdh.rst           |   1 +
>  drivers/net/zxdh/zxdh_ethdev.c     |  52 ++++
>  drivers/net/zxdh/zxdh_ethdev.h     |   3 +
>  drivers/net/zxdh/zxdh_ethdev_ops.c | 410 +++++++++++++++++++++++++++++
>  drivers/net/zxdh/zxdh_ethdev_ops.h |  26 ++
>  drivers/net/zxdh/zxdh_msg.h        |  22 ++
>  drivers/net/zxdh/zxdh_tables.c     |  82 ++++++
>  drivers/net/zxdh/zxdh_tables.h     |   7 +
>  9 files changed, 606 insertions(+)
> 

Some suggestions:

> +int
> +zxdh_dev_rss_reta_update(struct rte_eth_dev *dev,
> +                      struct rte_eth_rss_reta_entry64 *reta_conf,
> +                      uint16_t reta_size)
> +{
> +     struct zxdh_hw *hw = dev->data->dev_private;
> +     struct zxdh_msg_info msg = {0};
> +     uint16_t old_reta[RTE_ETH_RSS_RETA_SIZE_256];
> +     uint16_t idx;
> +     uint16_t i;
> +     uint16_t pos;
> +     int ret;
> +
> +     if (reta_size != RTE_ETH_RSS_RETA_SIZE_256) {
> +             PMD_DRV_LOG(ERR, "reta_size is illegal(%u).reta_size should be 
> 256", reta_size);
> +             return -EINVAL;
> +     }
> +     if (!hw->rss_reta) {
> +             hw->rss_reta = rte_zmalloc(NULL, RTE_ETH_RSS_RETA_SIZE_256 * 
> sizeof(uint16_t), 4);

This could be rte_calloc()

...

> +int
> +zxdh_rss_table_set(uint16_t vport, struct zxdh_rss_reta *rss_reta)
> +{
> +     struct zxdh_rss_to_vqid_table rss_vqid = {0};
> +     union zxdh_virport_num vport_num = (union zxdh_virport_num)vport;
> +     int ret = 0;
> +
> +     for (uint16_t i = 0; i < RTE_ETH_RSS_RETA_SIZE_256 / 8; i++) {
> +             for (uint16_t j = 0; j < 8; j++) {
> +             #if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
> +                     if (j % 2 == 0)
> +                             rss_vqid.vqm_qid[j + 1] =  rss_reta->reta[i * 8 
> + j];
> +                     else
> +                             rss_vqid.vqm_qid[j - 1] =  rss_reta->reta[i * 8 
> + j];
> +             #else
> +                     rss_vqid.vqm_qid[j] = rss_init->reta[i * 8 + j];
> +             #endif

Please put #if in first column not indented.
Better yet, use rte_byteorder functions to elimnate #if code
pattern.

> +             }
> +
> +             #if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
> +                     rss_vqid.vqm_qid[1] |= 0x8000;
> +             #else
> +                     rss_vqid.vqm_qid[0] |= 0x8000;
> +             #endif

Reply via email to