net/octeontx2: fix MTU when PTP is enabled
[dpdk.git] / drivers / net / octeontx2 / otx2_ethdev_ops.c
index 5a45012..552e6bd 100644 (file)
@@ -17,7 +17,8 @@ otx2_nix_mtu_set(struct rte_eth_dev *eth_dev, uint16_t mtu)
        struct nix_frs_cfg *req;
        int rc;
 
-       frame_size += NIX_TIMESYNC_RX_OFFSET * otx2_ethdev_is_ptp_en(dev);
+       if (dev->configured && otx2_ethdev_is_ptp_en(dev))
+               frame_size += NIX_TIMESYNC_RX_OFFSET;
 
        /* Check if MTU is within the allowed range */
        if (frame_size < NIX_MIN_FRS || frame_size > NIX_MAX_FRS)
@@ -547,6 +548,11 @@ otx2_nix_info_get(struct rte_eth_dev *eth_dev, struct rte_eth_dev_info *devinfo)
        devinfo->max_vfs = pci_dev->max_vfs;
        devinfo->max_mtu = devinfo->max_rx_pktlen - NIX_L2_OVERHEAD;
        devinfo->min_mtu = devinfo->min_rx_bufsize - NIX_L2_OVERHEAD;
+       if (dev->configured && otx2_ethdev_is_ptp_en(dev)) {
+               devinfo->max_mtu -=  NIX_TIMESYNC_RX_OFFSET;
+               devinfo->min_mtu -=  NIX_TIMESYNC_RX_OFFSET;
+               devinfo->max_rx_pktlen -= NIX_TIMESYNC_RX_OFFSET;
+       }
 
        devinfo->rx_offload_capa = dev->rx_offload_capa;
        devinfo->tx_offload_capa = dev->tx_offload_capa;