net/failsafe: report minimum and maximum MTU in device info

Message ID 20201222085149.848142-1-andrew.rybchenko@oktetlabs.ru (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series net/failsafe: report minimum and maximum MTU in device info |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-abi-testing success Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-testing success Testing PASS

Commit Message

Andrew Rybchenko Dec. 22, 2020, 8:51 a.m. UTC
  Take minimum and maximum MTU values for subdevices and
report maximum of minimums and minimum of maximums.

Fixes: ad97ceece12c ("ethdev: add min/max MTU to device info")
Cc: stable@dpdk.org

Signed-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
---
 drivers/net/failsafe/failsafe_ops.c | 4 ++++
 1 file changed, 4 insertions(+)
  

Comments

Gaëtan Rivet Feb. 22, 2021, 3:28 p.m. UTC | #1
On Tue, Dec 22, 2020, at 08:51, Andrew Rybchenko wrote:
> Take minimum and maximum MTU values for subdevices and
> report maximum of minimums and minimum of maximums.
> 
> Fixes: ad97ceece12c ("ethdev: add min/max MTU to device info")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
> ---
>  drivers/net/failsafe/failsafe_ops.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/net/failsafe/failsafe_ops.c 
> b/drivers/net/failsafe/failsafe_ops.c
> index 76d64871b4..5e6fb369e1 100644
> --- a/drivers/net/failsafe/failsafe_ops.c
> +++ b/drivers/net/failsafe/failsafe_ops.c
> @@ -1095,6 +1095,8 @@ static void
>  fs_dev_merge_info(struct rte_eth_dev_info *info,
>  		  const struct rte_eth_dev_info *sinfo)
>  {
> +	info->min_mtu = RTE_MAX(info->min_mtu, sinfo->min_mtu);
> +	info->max_mtu = RTE_MIN(info->max_mtu, sinfo->max_mtu);
>  	info->max_rx_pktlen = RTE_MIN(info->max_rx_pktlen, 
> sinfo->max_rx_pktlen);
>  	info->max_rx_queues = RTE_MIN(info->max_rx_queues, 
> sinfo->max_rx_queues);
>  	info->max_tx_queues = RTE_MIN(info->max_tx_queues, 
> sinfo->max_tx_queues);
> @@ -1172,6 +1174,8 @@ fs_dev_infos_get(struct rte_eth_dev *dev,
>  	int ret;
>  
>  	/* Use maximum upper bounds by default */
> +	infos->min_mtu = RTE_ETHER_MIN_MTU;
> +	infos->max_mtu = UINT16_MAX;
>  	infos->max_rx_pktlen = UINT32_MAX;
>  	infos->max_rx_queues = RTE_MAX_QUEUES_PER_PORT;
>  	infos->max_tx_queues = RTE_MAX_QUEUES_PER_PORT;
> -- 
> 2.29.2
> 
>

Hi Andrew,

Sorry, I missed this patch before.
It looks ok to me:

Acked-by: Gaetan Rivet <grive@u256.net>
  
Ferruh Yigit Feb. 22, 2021, 4:44 p.m. UTC | #2
On 2/22/2021 3:28 PM, Gaëtan Rivet wrote:
> On Tue, Dec 22, 2020, at 08:51, Andrew Rybchenko wrote:
>> Take minimum and maximum MTU values for subdevices and
>> report maximum of minimums and minimum of maximums.
>>
>> Fixes: ad97ceece12c ("ethdev: add min/max MTU to device info")
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
> 
> Acked-by: Gaetan Rivet <grive@u256.net>
> 

Applied to dpdk-next-net/main, thanks.
  

Patch

diff --git a/drivers/net/failsafe/failsafe_ops.c b/drivers/net/failsafe/failsafe_ops.c
index 76d64871b4..5e6fb369e1 100644
--- a/drivers/net/failsafe/failsafe_ops.c
+++ b/drivers/net/failsafe/failsafe_ops.c
@@ -1095,6 +1095,8 @@  static void
 fs_dev_merge_info(struct rte_eth_dev_info *info,
 		  const struct rte_eth_dev_info *sinfo)
 {
+	info->min_mtu = RTE_MAX(info->min_mtu, sinfo->min_mtu);
+	info->max_mtu = RTE_MIN(info->max_mtu, sinfo->max_mtu);
 	info->max_rx_pktlen = RTE_MIN(info->max_rx_pktlen, sinfo->max_rx_pktlen);
 	info->max_rx_queues = RTE_MIN(info->max_rx_queues, sinfo->max_rx_queues);
 	info->max_tx_queues = RTE_MIN(info->max_tx_queues, sinfo->max_tx_queues);
@@ -1172,6 +1174,8 @@  fs_dev_infos_get(struct rte_eth_dev *dev,
 	int ret;
 
 	/* Use maximum upper bounds by default */
+	infos->min_mtu = RTE_ETHER_MIN_MTU;
+	infos->max_mtu = UINT16_MAX;
 	infos->max_rx_pktlen = UINT32_MAX;
 	infos->max_rx_queues = RTE_MAX_QUEUES_PER_PORT;
 	infos->max_tx_queues = RTE_MAX_QUEUES_PER_PORT;