X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Focteontx%2Focteontx_ethdev.c;h=0a2e34db858ff6358dbb9d507553ebb4aae86113;hb=295c053f90f1c2e6bd74fc838be316545f1bc8eb;hp=9f4c0503b4d4ece860bfd92484f46b18c1fadf9e;hpb=eeded2044af5bbe88220120b14933536cbb3edb6;p=dpdk.git diff --git a/drivers/net/octeontx/octeontx_ethdev.c b/drivers/net/octeontx/octeontx_ethdev.c index 9f4c0503b4..0a2e34db85 100644 --- a/drivers/net/octeontx/octeontx_ethdev.c +++ b/drivers/net/octeontx/octeontx_ethdev.c @@ -9,13 +9,14 @@ #include #include +#include #include #include #include #include #include -#include #include +#include #include #include #include @@ -524,10 +525,6 @@ octeontx_dev_mtu_set(struct rte_eth_dev *eth_dev, uint16_t mtu) struct rte_eth_dev_data *data = eth_dev->data; int rc = 0; - /* Check if MTU is within the allowed range */ - if (frame_size < OCCTX_MIN_FRS || frame_size > OCCTX_MAX_FRS) - return -EINVAL; - buffsz = data->min_rx_buf_size - RTE_PKTMBUF_HEADROOM; /* Refuse MTU that requires the support of scattered packets @@ -552,13 +549,6 @@ octeontx_dev_mtu_set(struct rte_eth_dev *eth_dev, uint16_t mtu) if (rc) return rc; - if (frame_size > OCCTX_L2_MAX_LEN) - nic->rx_offloads |= DEV_RX_OFFLOAD_JUMBO_FRAME; - else - nic->rx_offloads &= ~DEV_RX_OFFLOAD_JUMBO_FRAME; - - /* Update max_rx_pkt_len */ - data->dev_conf.rxmode.max_rx_pkt_len = frame_size; octeontx_log_info("Received pkt beyond maxlen %d will be dropped", frame_size); @@ -581,7 +571,7 @@ octeontx_recheck_rx_offloads(struct octeontx_rxq *rxq) buffsz = mbp_priv->mbuf_data_room_size - RTE_PKTMBUF_HEADROOM; /* Setup scatter mode if needed by jumbo */ - if (data->dev_conf.rxmode.max_rx_pkt_len > buffsz) { + if (data->mtu > buffsz) { nic->rx_offloads |= DEV_RX_OFFLOAD_SCATTER; nic->rx_offload_flags |= octeontx_rx_offload_flags(eth_dev); nic->tx_offload_flags |= octeontx_tx_offload_flags(eth_dev); @@ -593,8 +583,8 @@ octeontx_recheck_rx_offloads(struct octeontx_rxq *rxq) evdev_priv->rx_offload_flags = nic->rx_offload_flags; evdev_priv->tx_offload_flags = nic->tx_offload_flags; - /* Setup MTU based on max_rx_pkt_len */ - nic->mtu = data->dev_conf.rxmode.max_rx_pkt_len - OCCTX_L2_OVERHEAD; + /* Setup MTU */ + nic->mtu = data->mtu; return 0; } @@ -615,7 +605,7 @@ octeontx_dev_start(struct rte_eth_dev *dev) octeontx_recheck_rx_offloads(rxq); } - /* Setting up the mtu based on max_rx_pkt_len */ + /* Setting up the mtu */ ret = octeontx_dev_mtu_set(dev, nic->mtu); if (ret) { octeontx_log_err("Failed to set default MTU size %d", ret); @@ -971,20 +961,18 @@ octeontx_dev_tx_queue_stop(struct rte_eth_dev *dev, uint16_t qidx) } static void -octeontx_dev_tx_queue_release(void *tx_queue) +octeontx_dev_tx_queue_release(struct rte_eth_dev *dev, uint16_t qid) { - struct octeontx_txq *txq = tx_queue; int res; PMD_INIT_FUNC_TRACE(); - if (txq) { - res = octeontx_dev_tx_queue_stop(txq->eth_dev, txq->queue_id); + if (dev->data->tx_queues[qid]) { + res = octeontx_dev_tx_queue_stop(dev, qid); if (res < 0) - octeontx_log_err("failed stop tx_queue(%d)\n", - txq->queue_id); + octeontx_log_err("failed stop tx_queue(%d)\n", qid); - rte_free(txq); + rte_free(dev->data->tx_queues[qid]); } } @@ -1013,7 +1001,7 @@ octeontx_dev_tx_queue_setup(struct rte_eth_dev *dev, uint16_t qidx, if (dev->data->tx_queues[qidx] != NULL) { PMD_TX_LOG(DEBUG, "freeing memory prior to re-allocation %d", qidx); - octeontx_dev_tx_queue_release(dev->data->tx_queues[qidx]); + octeontx_dev_tx_queue_release(dev, qidx); dev->data->tx_queues[qidx] = NULL; } @@ -1221,9 +1209,9 @@ octeontx_dev_rx_queue_setup(struct rte_eth_dev *dev, uint16_t qidx, } static void -octeontx_dev_rx_queue_release(void *rxq) +octeontx_dev_rx_queue_release(struct rte_eth_dev *dev, uint16_t qid) { - rte_free(rxq); + rte_free(dev->data->rx_queues[qid]); } static const uint32_t * @@ -1374,7 +1362,6 @@ octeontx_create(struct rte_vdev_device *dev, int port, uint8_t evdev, data->promiscuous = 0; data->all_multicast = 0; data->scattered_rx = 0; - data->dev_flags |= RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS; /* Get maximum number of supported MAC entries */ max_entries = octeontx_bgx_port_mac_entries_get(nic->port_id);