[PATCH 2/2] net/bonding: add command to set dedicated queue size
Stephen Hemminger
stephen at networkplumber.org
Thu Oct 10 20:13:07 CEST 2024
On Mon, 24 Jun 2024 10:03:55 +0800
Chaoyong He <chaoyong.he at corigine.com> wrote:
> diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.c b/drivers/net/bonding/rte_eth_bond_8023ad.c
> index 06c21ebe6d..c19645aa4f 100644
> --- a/drivers/net/bonding/rte_eth_bond_8023ad.c
> +++ b/drivers/net/bonding/rte_eth_bond_8023ad.c
> @@ -1254,6 +1254,8 @@ bond_mode_8023ad_conf_assign(struct mode8023ad_private *mode4,
> mode4->dedicated_queues.enabled = 0;
> mode4->dedicated_queues.rx_qid = UINT16_MAX;
> mode4->dedicated_queues.tx_qid = UINT16_MAX;
> + mode4->dedicated_queues.rx_queue_size = SLOW_RX_QUEUE_HW_DEFAULT_SIZE;
> + mode4->dedicated_queues.tx_queue_size = SLOW_TX_QUEUE_HW_DEFAULT_SIZE;
> }
>
> void
> @@ -1753,3 +1755,40 @@ rte_eth_bond_8023ad_dedicated_queues_disable(uint16_t port)
>
> return retval;
> }
> +
> +int
> +rte_eth_bond_8023ad_dedicated_queue_size_set(uint16_t port,
> + uint16_t queue_size,
> + char *queue_type)
Should be const char * for queue type
> +{
> + struct rte_eth_dev *dev;
> + struct bond_dev_private *internals;
> +
> + if (valid_bonding_port_id(port) != 0) {
> + RTE_BOND_LOG(ERR, "The bonding port id is invalid");
> + return -EINVAL;
> + }
> +
> + dev = &rte_eth_devices[port];
> +
> + /* Device must be stopped to set up slow queue */
> + if (dev->data->dev_started != 0) {
> + RTE_BOND_LOG(ERR, "Please stop the bonding port");
> + return -EINVAL;
> + }
> +
> + internals = dev->data->dev_private;
> + if (internals->mode4.dedicated_queues.enabled == 0) {
> + RTE_BOND_LOG(ERR, "Please enable dedicated queue");
> + return -EINVAL;
> + }
> +
> + if (strcmp(queue_type, "rxq") == 0)
> + internals->mode4.dedicated_queues.rx_queue_size = queue_size;
> + else if (strcmp(queue_type, "txq") == 0)
> + internals->mode4.dedicated_queues.tx_queue_size = queue_size;
> + else
> + return -EINVAL;
Add error message like:
RTE_BOND_LOG(ERR, "Unknown queue type %s", queue_type);
> +
> + return 0;
> +}
More information about the dev
mailing list