[dpdk-dev] [PATCH v2 18/30] net/dpaa2: add support for config max Rx length in HW
Sachin Saxena
sachin.saxena at nxp.com
Thu Aug 29 12:27:25 CEST 2019
From: Hemant Agrawal <hemant.agrawal at nxp.com>
The MC expects the length to be configured without CRC
Signed-off-by: Hemant Agrawal <hemant.agrawal at nxp.com>
---
drivers/net/dpaa2/dpaa2_ethdev.c | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index 721e125b4..a1ef5be6a 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -418,12 +418,17 @@ dpaa2_eth_dev_configure(struct rte_eth_dev *dev)
if (rx_offloads & DEV_RX_OFFLOAD_JUMBO_FRAME) {
if (eth_conf->rxmode.max_rx_pkt_len <= DPAA2_MAX_RX_PKT_LEN) {
ret = dpni_set_max_frame_length(dpni, CMD_PRI_LOW,
- priv->token, eth_conf->rxmode.max_rx_pkt_len);
+ priv->token, eth_conf->rxmode.max_rx_pkt_len
+ - RTE_ETHER_CRC_LEN);
if (ret) {
DPAA2_PMD_ERR(
"Unable to set mtu. check config");
return ret;
}
+ dev->data->mtu =
+ dev->data->dev_conf.rxmode.max_rx_pkt_len -
+ RTE_ETHER_HDR_LEN - RTE_ETHER_CRC_LEN -
+ VLAN_TAG_SIZE;
} else {
return -1;
}
@@ -1201,7 +1206,7 @@ dpaa2_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)
* Maximum Ethernet header length
*/
ret = dpni_set_max_frame_length(dpni, CMD_PRI_LOW, priv->token,
- frame_size);
+ frame_size - RTE_ETHER_CRC_LEN);
if (ret) {
DPAA2_PMD_ERR("Setting the max frame length failed");
return -1;
@@ -2376,6 +2381,14 @@ dpaa2_dev_init(struct rte_eth_dev *eth_dev)
}
}
+ ret = dpni_set_max_frame_length(dpni_dev, CMD_PRI_LOW, priv->token,
+ RTE_ETHER_MAX_LEN - RTE_ETHER_CRC_LEN
+ + VLAN_TAG_SIZE);
+ if (ret) {
+ DPAA2_PMD_ERR("Unable to set mtu. check config");
+ goto init_err;
+ }
+
RTE_LOG(INFO, PMD, "%s: netdev created\n", eth_dev->data->name);
return 0;
init_err:
--
2.17.1
More information about the dev
mailing list