[dpdk-dev] [PATCH] i40e: fix oversize packet counter not incrementing for large packets

Michael Bieniek michaelbieniekdpdk at gmail.com
Fri Nov 25 19:21:03 CET 2016


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 <michaelbieniekdpdk at gmail.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 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->dev_private);
+	struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->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)
 		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;
 }
-- 
2.4.11



More information about the dev mailing list