Thread (3 messages) 3 messages, 2 authors, 2017-02-08

Re: [PATCH] i40e: fix oversize packet counter not incrementing for large packets

From: Wu, Jingjing <hidden>
Date: 2017-02-08 05:13:19

-----Original Message-----
From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Wu, Jingjing
Sent: Monday, November 28, 2016 10:20 AM
To: Michael Bieniek <redacted>; Zhang, Helin
[off-list ref]
Cc: dev@dpdk.org
Subject: Re: [dpdk-dev] [PATCH] i40e: fix oversize packet counter not
incrementing for large packets


quoted
-----Original Message-----
From: Michael Bieniek [mailto:michaelbieniekdpdk@gmail.com]
Sent: Saturday, November 26, 2016 2:21 AM
To: Zhang, Helin <redacted>; Wu, Jingjing
[off-list ref]
Cc: dev@dpdk.org; Michael Bieniek <redacted>
Subject: [PATCH] i40e: fix oversize packet counter not incrementing
for large packets

The XL710 requires that the Set MAC Config command be used to define
the maximum frame size in order for the Receive Oversize Count
register
(GLPRT_ROC) to be incremented for packets received that are greater
than the MTU. Without this change, the XL710 will drop the oversized
packets without incrementing the corresponding counter.

Signed-off-by: Michael Bieniek <redacted>
---
 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 67778ba..c11c80b 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -9709,6 +9709,7 @@ static int
 i40e_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)  {
 	struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data-
quoted
dev_private);
+	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data-
quoted
dev_private);
 	struct rte_eth_dev_data *dev_data = pf->dev_data;
 	uint32_t frame_size = mtu + ETHER_HDR_LEN
 			      + ETHER_CRC_LEN + I40E_VLAN_TAG_SIZE; @@ -
9732,6 +9733,7 @@ i40e_dev_mtu_set(struct rte_eth_dev *dev, uint16_t
mtu)
quoted
 		dev_data->dev_conf.rxmode.jumbo_frame = 0;

 	dev_data->dev_conf.rxmode.max_rx_pkt_len = frame_size;
+	i40e_aq_set_mac_config(hw, frame_size, TRUE, 0, NULL);

 	return ret;
 }
If you look into the eth_i40e_dev_init, you will find the mac's maximum
frame size Has been set to I40E_FRAME_SIZE_MAX (0x2600). Then the
changing of maximum frame size is by the setting in queues.

If change the frame size on mac, the maximum frame size will not only works
on PF but also VF.
NACK to this patch.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help