* [dpdk-dev] [RFC 1/6] ethdev: add min/max MTU to device info
2019-02-20 15:57 [dpdk-dev] [RFC 0/6] ethdev: add min/max MTU to device info Ian Stokes
@ 2019-02-20 15:57 ` Ian Stokes
2019-02-25 7:40 ` Andrew Rybchenko
2019-02-20 15:57 ` [dpdk-dev] [RFC 2/6] net/i40e: set min and max MTU for i40e devices Ian Stokes
` (4 subsequent siblings)
5 siblings, 1 reply; 9+ messages in thread
From: Ian Stokes @ 2019-02-20 15:57 UTC (permalink / raw)
To: dev; +Cc: stephen, Ian Stokes
From: Stephen Hemminger <stephen@networkplumber.org>
This addresses the usability issue raised by OVS at DPDK Userspace
summit. It adds general min/max mtu into device info. For compatiablity,
and to save space, it fits in a hole in existing structure.
The initial version sets max mtu to normal Ethernet, it is up to
PMD to set larger value if it supports Jumbo frames.
Also remove the deprecation notice introduced in 18.11 regarding this
change.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Ian Stokes <ian.stokes@intel.com>
---
doc/guides/rel_notes/deprecation.rst | 12 ------------
lib/librte_ethdev/rte_ethdev.c | 7 +++++++
lib/librte_ethdev/rte_ethdev.h | 2 ++
3 files changed, 9 insertions(+), 12 deletions(-)
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index 1b4fcb7e6..0e85c47f3 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -56,18 +56,6 @@ Deprecation Notices
Target release for removal of the legacy API will be defined once most
PMDs have switched to rte_flow.
-* ethdev: Maximum and minimum MTU values vary between hardware devices. In
- hardware agnostic DPDK applications access to such information would allow
- a more accurate way of validating and setting supported MTU values on a per
- device basis rather than using a defined default for all devices. To
- resolve this, the following members will be added to ``rte_eth_dev_info``.
- Note: these can be added to fit a hole in the existing structure for amd64
- but not for 32-bit, as such ABI change will occur as size of the structure
- will increase.
-
- - Member ``uint16_t min_mtu`` the minimum MTU allowed.
- - Member ``uint16_t max_mtu`` the maximum MTU allowed.
-
* meter: New ``rte_color`` definition will be added in 19.02 and that will
replace ``enum rte_meter_color`` in meter library in 19.05. This will help
to consolidate color definition, which is currently replicated in many places,
diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
index 0d192a24b..f089af94d 100644
--- a/lib/librte_ethdev/rte_ethdev.c
+++ b/lib/librte_ethdev/rte_ethdev.c
@@ -2527,6 +2527,8 @@ rte_eth_dev_info_get(uint16_t port_id, struct rte_eth_dev_info *dev_info)
dev_info->rx_desc_lim = lim;
dev_info->tx_desc_lim = lim;
dev_info->device = dev->device;
+ dev_info->min_mtu = ETHER_MIN_MTU;
+ dev_info->max_mtu = ETHER_MTU;
RTE_FUNC_PTR_OR_RET(*dev->dev_ops->dev_infos_get);
(*dev->dev_ops->dev_infos_get)(dev, dev_info);
@@ -2590,12 +2592,17 @@ int
rte_eth_dev_set_mtu(uint16_t port_id, uint16_t mtu)
{
int ret;
+ struct rte_eth_dev_info dev_info;
struct rte_eth_dev *dev;
RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV);
dev = &rte_eth_devices[port_id];
RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->mtu_set, -ENOTSUP);
+ rte_eth_dev_info_get(port_id, &dev_info);
+ if (mtu < dev_info.min_mtu || mtu > dev_info.max_mtu)
+ return -EINVAL;
+
ret = (*dev->dev_ops->mtu_set)(dev, mtu);
if (!ret)
dev->data->mtu = mtu;
diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
index a3c864a13..9fe51b2bd 100644
--- a/lib/librte_ethdev/rte_ethdev.h
+++ b/lib/librte_ethdev/rte_ethdev.h
@@ -1086,6 +1086,8 @@ struct rte_eth_dev_info {
const char *driver_name; /**< Device Driver name. */
unsigned int if_index; /**< Index to bound host interface, or 0 if none.
Use if_indextoname() to translate into an interface name. */
+ uint16_t min_mtu; /**< Minimum MTU allowed */
+ uint16_t max_mtu; /**< Maximum MTU allowed */
const uint32_t *dev_flags; /**< Device flags */
uint32_t min_rx_bufsize; /**< Minimum size of RX buffer. */
uint32_t max_rx_pktlen; /**< Maximum configurable length of RX pkt. */
--
2.13.6
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] [RFC 1/6] ethdev: add min/max MTU to device info
2019-02-20 15:57 ` [dpdk-dev] [RFC 1/6] " Ian Stokes
@ 2019-02-25 7:40 ` Andrew Rybchenko
2019-02-27 21:48 ` Ian Stokes
0 siblings, 1 reply; 9+ messages in thread
From: Andrew Rybchenko @ 2019-02-25 7:40 UTC (permalink / raw)
To: Ian Stokes, dev; +Cc: stephen
On 2/20/19 6:57 PM, Ian Stokes wrote:
> From: Stephen Hemminger <stephen@networkplumber.org>
>
> This addresses the usability issue raised by OVS at DPDK Userspace
> summit. It adds general min/max mtu into device info. For compatiablity,
> and to save space, it fits in a hole in existing structure.
>
> The initial version sets max mtu to normal Ethernet, it is up to
> PMD to set larger value if it supports Jumbo frames.
>
> Also remove the deprecation notice introduced in 18.11 regarding this
> change.
>
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> Signed-off-by: Ian Stokes <ian.stokes@intel.com>
> ---
[...]
> diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
> index 0d192a24b..f089af94d 100644
> --- a/lib/librte_ethdev/rte_ethdev.c
> +++ b/lib/librte_ethdev/rte_ethdev.c
> @@ -2527,6 +2527,8 @@ rte_eth_dev_info_get(uint16_t port_id, struct rte_eth_dev_info *dev_info)
> dev_info->rx_desc_lim = lim;
> dev_info->tx_desc_lim = lim;
> dev_info->device = dev->device;
> + dev_info->min_mtu = ETHER_MIN_MTU;
> + dev_info->max_mtu = ETHER_MTU;
I think it should be set to UINT16_MAX to avoid breakage of jumbo frame
support just after the patch. When all in tree drivers are updated, it
can be
set to ETHER_MTU, but it should in with UINT16_MAX value.
with above issue fixed
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [dpdk-dev] [RFC 1/6] ethdev: add min/max MTU to device info
2019-02-25 7:40 ` Andrew Rybchenko
@ 2019-02-27 21:48 ` Ian Stokes
0 siblings, 0 replies; 9+ messages in thread
From: Ian Stokes @ 2019-02-27 21:48 UTC (permalink / raw)
To: Andrew Rybchenko, dev; +Cc: stephen
On 2/25/2019 7:40 AM, Andrew Rybchenko wrote:
> On 2/20/19 6:57 PM, Ian Stokes wrote:
>> From: Stephen Hemminger<stephen@networkplumber.org>
>>
>> This addresses the usability issue raised by OVS at DPDK Userspace
>> summit. It adds general min/max mtu into device info. For compatiablity,
>> and to save space, it fits in a hole in existing structure.
>>
>> The initial version sets max mtu to normal Ethernet, it is up to
>> PMD to set larger value if it supports Jumbo frames.
>>
>> Also remove the deprecation notice introduced in 18.11 regarding this
>> change.
>>
>> Signed-off-by: Stephen Hemminger<stephen@networkplumber.org>
>> Signed-off-by: Ian Stokes<ian.stokes@intel.com>
>> ---
>
> [...]
>
>> diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c
>> index 0d192a24b..f089af94d 100644
>> --- a/lib/librte_ethdev/rte_ethdev.c
>> +++ b/lib/librte_ethdev/rte_ethdev.c
>> @@ -2527,6 +2527,8 @@ rte_eth_dev_info_get(uint16_t port_id, struct rte_eth_dev_info *dev_info)
>> dev_info->rx_desc_lim = lim;
>> dev_info->tx_desc_lim = lim;
>> dev_info->device = dev->device;
>> + dev_info->min_mtu = ETHER_MIN_MTU;
>> + dev_info->max_mtu = ETHER_MTU;
>
> I think it should be set to UINT16_MAX to avoid breakage of jumbo frame
> support just after the patch. When all in tree drivers are updated, it
> can be
> set to ETHER_MTU, but it should in with UINT16_MAX value.
>
> with above issue fixed
> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
>
Thanks for the feedback Andrew, I've made the change and submitted a v1
of the series (link below), I've added your ack to this patch
specifically in the series also if that's ok.
http://mails.dpdk.org/archives/dev/2019-February/125319.html
Thanks
Ian
^ permalink raw reply [flat|nested] 9+ messages in thread
* [dpdk-dev] [RFC 2/6] net/i40e: set min and max MTU for i40e devices
2019-02-20 15:57 [dpdk-dev] [RFC 0/6] ethdev: add min/max MTU to device info Ian Stokes
2019-02-20 15:57 ` [dpdk-dev] [RFC 1/6] " Ian Stokes
@ 2019-02-20 15:57 ` Ian Stokes
2019-02-20 15:57 ` [dpdk-dev] [RFC 3/6] net/i40e: set min and max MTU for i40e VF devices Ian Stokes
` (3 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Ian Stokes @ 2019-02-20 15:57 UTC (permalink / raw)
To: dev; +Cc: stephen, Ian Stokes
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;
+ dev_info->min_mtu = ETHER_MIN_MTU;
dev_info->rx_queue_offload_capa = 0;
dev_info->rx_offload_capa =
DEV_RX_OFFLOAD_VLAN_STRIP |
--
2.13.6
^ permalink raw reply [flat|nested] 9+ messages in thread
* [dpdk-dev] [RFC 3/6] net/i40e: set min and max MTU for i40e VF devices
2019-02-20 15:57 [dpdk-dev] [RFC 0/6] ethdev: add min/max MTU to device info Ian Stokes
2019-02-20 15:57 ` [dpdk-dev] [RFC 1/6] " Ian Stokes
2019-02-20 15:57 ` [dpdk-dev] [RFC 2/6] net/i40e: set min and max MTU for i40e devices Ian Stokes
@ 2019-02-20 15:57 ` Ian Stokes
2019-02-20 15:57 ` [dpdk-dev] [RFC 4/6] net/ixgbe: set min and max MTU for ixgbe devices Ian Stokes
` (2 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Ian Stokes @ 2019-02-20 15:57 UTC (permalink / raw)
To: dev; +Cc: stephen, Ian Stokes
This commit sets the min and max supported MTU values for i40e VF
devices via the i40evf_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_vf.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c
index 7e4bd7314..add7b2223 100644
--- a/drivers/net/i40e/i40e_ethdev_vf.c
+++ b/drivers/net/i40e/i40e_ethdev_vf.c
@@ -2216,6 +2216,8 @@ i40evf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
dev_info->max_tx_queues = I40E_MAX_QP_NUM_PER_VF;
dev_info->min_rx_bufsize = I40E_BUF_SIZE_MIN;
dev_info->max_rx_pktlen = I40E_FRAME_SIZE_MAX;
+ dev_info->max_mtu = dev_info->max_rx_pktlen - I40E_ETH_OVERHEAD;
+ dev_info->min_mtu = ETHER_MIN_MTU;
dev_info->hash_key_size = (I40E_VFQF_HKEY_MAX_INDEX + 1) * sizeof(uint32_t);
dev_info->reta_size = ETH_RSS_RETA_SIZE_64;
dev_info->flow_type_rss_offloads = vf->adapter->flow_types_mask;
--
2.13.6
^ permalink raw reply [flat|nested] 9+ messages in thread
* [dpdk-dev] [RFC 4/6] net/ixgbe: set min and max MTU for ixgbe devices
2019-02-20 15:57 [dpdk-dev] [RFC 0/6] ethdev: add min/max MTU to device info Ian Stokes
` (2 preceding siblings ...)
2019-02-20 15:57 ` [dpdk-dev] [RFC 3/6] net/i40e: set min and max MTU for i40e VF devices Ian Stokes
@ 2019-02-20 15:57 ` Ian Stokes
2019-02-20 15:57 ` [dpdk-dev] [RFC 5/6] net/ixgbe: set min and max MTU for ixgbe VF devices Ian Stokes
2019-02-20 15:57 ` [dpdk-dev] [RFC 6/6] net/e1000: set min and max MTU for igb devices Ian Stokes
5 siblings, 0 replies; 9+ messages in thread
From: Ian Stokes @ 2019-02-20 15:57 UTC (permalink / raw)
To: dev; +Cc: stephen, Ian Stokes
This commit sets the min and max supported MTU values for ixgbe devices
via the ixgbe_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. To aid in these calculations
a new MACRO 'IXGBE_ETH_OVERHEAD' has been introduced to consolidate
overhead calculation and avoid duplication.
Signed-off-by: Ian Stokes <ian.stokes@intel.com>
---
drivers/net/ixgbe/ixgbe_ethdev.c | 4 +++-
drivers/net/ixgbe/ixgbe_ethdev.h | 3 +++
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 749311048..c4f6ff5bd 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -3734,6 +3734,8 @@ ixgbe_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
dev_info->max_vmdq_pools = ETH_16_POOLS;
else
dev_info->max_vmdq_pools = ETH_64_POOLS;
+ dev_info->max_mtu = dev_info->max_rx_pktlen - IXGBE_ETH_OVERHEAD;
+ dev_info->min_mtu = ETHER_MIN_MTU;
dev_info->vmdq_queue_num = dev_info->max_rx_queues;
dev_info->rx_queue_offload_capa = ixgbe_get_rx_queue_offloads(dev);
dev_info->rx_offload_capa = (ixgbe_get_rx_port_offloads(dev) |
@@ -4925,7 +4927,7 @@ ixgbe_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
uint32_t maxfrs;
struct ixgbe_hw *hw;
struct rte_eth_dev_info dev_info;
- uint32_t frame_size = mtu + ETHER_HDR_LEN + ETHER_CRC_LEN;
+ uint32_t frame_size = mtu + IXGBE_ETH_OVERHEAD;
struct rte_eth_dev_data *dev_data = dev->data;
ixgbe_dev_info_get(dev, &dev_info);
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.h b/drivers/net/ixgbe/ixgbe_ethdev.h
index 565c69c9e..2217be30c 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.h
+++ b/drivers/net/ixgbe/ixgbe_ethdev.h
@@ -100,6 +100,9 @@
#define IXGBE_5TUPLE_MAX_PRI 7
#define IXGBE_5TUPLE_MIN_PRI 1
+/* The overhead from MTU to max frame size. */
+#define IXGBE_ETH_OVERHEAD (ETHER_HDR_LEN + ETHER_CRC_LEN)
+
/* bit of VXLAN tunnel type | 7 bits of zeros | 8 bits of zeros*/
#define IXGBE_FDIR_VXLAN_TUNNEL_TYPE 0x8000
/* bit of NVGRE tunnel type | 7 bits of zeros | 8 bits of zeros*/
--
2.13.6
^ permalink raw reply [flat|nested] 9+ messages in thread
* [dpdk-dev] [RFC 5/6] net/ixgbe: set min and max MTU for ixgbe VF devices
2019-02-20 15:57 [dpdk-dev] [RFC 0/6] ethdev: add min/max MTU to device info Ian Stokes
` (3 preceding siblings ...)
2019-02-20 15:57 ` [dpdk-dev] [RFC 4/6] net/ixgbe: set min and max MTU for ixgbe devices Ian Stokes
@ 2019-02-20 15:57 ` Ian Stokes
2019-02-20 15:57 ` [dpdk-dev] [RFC 6/6] net/e1000: set min and max MTU for igb devices Ian Stokes
5 siblings, 0 replies; 9+ messages in thread
From: Ian Stokes @ 2019-02-20 15:57 UTC (permalink / raw)
To: dev; +Cc: stephen, Ian Stokes
This commit sets the min and max supported MTU values for ixgbe VF
devices via the ixgbevf_dev_set_mtu() 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. As transport overhead is the
same for VF and PF ixgbe devices, reuse MACRO 'IXGBE_ETH_OVERHEAD' to
avoid duplication.
Signed-off-by: Ian Stokes <ian.stokes@intel.com>
---
drivers/net/ixgbe/ixgbe_ethdev.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index c4f6ff5bd..1a92a71cd 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -3843,6 +3843,7 @@ ixgbevf_dev_info_get(struct rte_eth_dev *dev,
dev_info->max_tx_queues = (uint16_t)hw->mac.max_tx_queues;
dev_info->min_rx_bufsize = 1024; /* cf BSIZEPACKET in SRRCTL reg */
dev_info->max_rx_pktlen = 9728; /* includes CRC, cf MAXFRS reg */
+ dev_info->max_mtu = dev_info->max_rx_pktlen - IXGBE_ETH_OVERHEAD;
dev_info->max_mac_addrs = hw->mac.num_rar_entries;
dev_info->max_hash_mac_addrs = IXGBE_VMDQ_NUM_UC_MAC;
dev_info->max_vfs = pci_dev->max_vfs;
@@ -6330,7 +6331,7 @@ static int
ixgbevf_dev_set_mtu(struct rte_eth_dev *dev, uint16_t mtu)
{
struct ixgbe_hw *hw;
- uint32_t max_frame = mtu + ETHER_HDR_LEN + ETHER_CRC_LEN;
+ uint32_t max_frame = mtu + IXGBE_ETH_OVERHEAD;
struct rte_eth_rxmode *rx_conf = &dev->data->dev_conf.rxmode;
hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
--
2.13.6
^ permalink raw reply [flat|nested] 9+ messages in thread
* [dpdk-dev] [RFC 6/6] net/e1000: set min and max MTU for igb devices
2019-02-20 15:57 [dpdk-dev] [RFC 0/6] ethdev: add min/max MTU to device info Ian Stokes
` (4 preceding siblings ...)
2019-02-20 15:57 ` [dpdk-dev] [RFC 5/6] net/ixgbe: set min and max MTU for ixgbe VF devices Ian Stokes
@ 2019-02-20 15:57 ` Ian Stokes
5 siblings, 0 replies; 9+ messages in thread
From: Ian Stokes @ 2019-02-20 15:57 UTC (permalink / raw)
To: dev; +Cc: stephen, Ian Stokes
This commit sets the min and max supported MTU values for igb devices
via the eth_igb_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. To aid in these calculations
a new MACRO 'E1000_ETH_OVERHEAD' has been introduced to consolidate
overhead calculation and avoid duplication.
Signed-off-by: Ian Stokes <ian.stokes@intel.com>
---
drivers/net/e1000/e1000_ethdev.h | 6 ++++++
drivers/net/e1000/igb_ethdev.c | 7 +++++--
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/drivers/net/e1000/e1000_ethdev.h b/drivers/net/e1000/e1000_ethdev.h
index 94edff08e..3e74cd8fe 100644
--- a/drivers/net/e1000/e1000_ethdev.h
+++ b/drivers/net/e1000/e1000_ethdev.h
@@ -89,6 +89,12 @@
ETH_RSS_IPV6_UDP_EX)
/*
+ * The overhead from MTU to max frame size.
+ * Considering VLAN so a tag needs to be counted.
+ */
+#define E1000_ETH_OVERHEAD (ETHER_HDR_LEN + ETHER_CRC_LEN + VLAN_TAG_SIZE)
+
+/*
* Maximum number of Ring Descriptors.
*
* Since RDLEN/TDLEN should be multiple of 128 bytes, the number of ring
diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c
index 87c9aedf2..b897e8ad4 100644
--- a/drivers/net/e1000/igb_ethdev.c
+++ b/drivers/net/e1000/igb_ethdev.c
@@ -2283,6 +2283,10 @@ eth_igb_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
dev_info->speed_capa = ETH_LINK_SPEED_10M_HD | ETH_LINK_SPEED_10M |
ETH_LINK_SPEED_100M_HD | ETH_LINK_SPEED_100M |
ETH_LINK_SPEED_1G;
+
+ dev_info->max_mtu = dev_info->max_rx_pktlen - E1000_ETH_OVERHEAD;
+ dev_info->min_mtu = ETHER_MIN_MTU;
+
}
static const uint32_t *
@@ -4466,8 +4470,7 @@ eth_igb_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
uint32_t rctl;
struct e1000_hw *hw;
struct rte_eth_dev_info dev_info;
- uint32_t frame_size = mtu + (ETHER_HDR_LEN + ETHER_CRC_LEN +
- VLAN_TAG_SIZE);
+ uint32_t frame_size = mtu + E1000_ETH_OVERHEAD;
hw = E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
--
2.13.6
^ permalink raw reply [flat|nested] 9+ messages in thread