[v1,2/6] net/i40e: set min and max MTU for i40e devices
Checks
Commit Message
This commit sets the min and max supported MTU values for i40e devices
via the i40e_dev_info_get() function. Min MTU supported is set to
ETHER_MIN_MTU and max mtu is calculated as the max packet length
supported minus the transport overhead.
Signed-off-by: Ian Stokes <ian.stokes@intel.com>
---
drivers/net/i40e/i40e_ethdev.c | 2 ++
1 file changed, 2 insertions(+)
Comments
On 2/27/2019 9:45 PM, Ian Stokes wrote:
> This commit sets the min and max supported MTU values for i40e devices
> via the i40e_dev_info_get() function. Min MTU supported is set to
> ETHER_MIN_MTU and max mtu is calculated as the max packet length
> supported minus the transport overhead.
>
> Signed-off-by: Ian Stokes <ian.stokes@intel.com>
> ---
> drivers/net/i40e/i40e_ethdev.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
> index dca61f03a..caab1624f 100644
> --- a/drivers/net/i40e/i40e_ethdev.c
> +++ b/drivers/net/i40e/i40e_ethdev.c
> @@ -3499,6 +3499,8 @@ i40e_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
> dev_info->max_rx_pktlen = I40E_FRAME_SIZE_MAX;
> dev_info->max_mac_addrs = vsi->max_macaddrs;
> dev_info->max_vfs = pci_dev->max_vfs;
> + dev_info->max_mtu = dev_info->max_rx_pktlen - I40E_ETH_OVERHEAD;
'I40E_ETH_OVERHEAD' [1] is the max overhead, when VLAN and QINQ is not
configured, we are wasting 8 bytes, should we try to be more fine grained when
setting the max_mtu? Does it worth the complexity?
[1]
(ETHER_HDR_LEN + ETHER_CRC_LEN + I40E_VLAN_TAG_SIZE * 2)
> + dev_info->min_mtu = ETHER_MIN_MTU;
> dev_info->rx_queue_offload_capa = 0;
> dev_info->rx_offload_capa =
> DEV_RX_OFFLOAD_VLAN_STRIP |
>
On 3/19/2019 4:18 PM, Ferruh Yigit wrote:
> On 2/27/2019 9:45 PM, Ian Stokes wrote:
>> This commit sets the min and max supported MTU values for i40e devices
>> via the i40e_dev_info_get() function. Min MTU supported is set to
>> ETHER_MIN_MTU and max mtu is calculated as the max packet length
>> supported minus the transport overhead.
>>
>> Signed-off-by: Ian Stokes <ian.stokes@intel.com>
>> ---
>> drivers/net/i40e/i40e_ethdev.c | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
>> index dca61f03a..caab1624f 100644
>> --- a/drivers/net/i40e/i40e_ethdev.c
>> +++ b/drivers/net/i40e/i40e_ethdev.c
>> @@ -3499,6 +3499,8 @@ i40e_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>> dev_info->max_rx_pktlen = I40E_FRAME_SIZE_MAX;
>> dev_info->max_mac_addrs = vsi->max_macaddrs;
>> dev_info->max_vfs = pci_dev->max_vfs;
>> + dev_info->max_mtu = dev_info->max_rx_pktlen - I40E_ETH_OVERHEAD;
>
> 'I40E_ETH_OVERHEAD' [1] is the max overhead, when VLAN and QINQ is not
> configured, we are wasting 8 bytes, should we try to be more fine grained when
> setting the max_mtu? Does it worth the complexity?
>
I'm not against this, but for this patchset I was keeping the values to
what have existed already.
There was discussion WRT being more dynamic and whether that was the
responsibility of the application or DPDK.
http://mails.dpdk.org/archives/dev/2019-February/124457.html
I'm open to this changing in the future, but for the moment was happy to
see it stay as it is until a resolution is agreed upon.
Ian
>
> [1]
> (ETHER_HDR_LEN + ETHER_CRC_LEN + I40E_VLAN_TAG_SIZE * 2)
>
>> + dev_info->min_mtu = ETHER_MIN_MTU;
>> dev_info->rx_queue_offload_capa = 0;
>> dev_info->rx_offload_capa =
>> DEV_RX_OFFLOAD_VLAN_STRIP |
>>
>
@@ -3499,6 +3499,8 @@ i40e_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
dev_info->max_rx_pktlen = I40E_FRAME_SIZE_MAX;
dev_info->max_mac_addrs = vsi->max_macaddrs;
dev_info->max_vfs = pci_dev->max_vfs;
+ dev_info->max_mtu = dev_info->max_rx_pktlen - I40E_ETH_OVERHEAD;
+ dev_info->min_mtu = ETHER_MIN_MTU;
dev_info->rx_queue_offload_capa = 0;
dev_info->rx_offload_capa =
DEV_RX_OFFLOAD_VLAN_STRIP |