.. _nic_features_timesync:
+Mbuf fast free
+--------------
+
+Supports optimization for fast release of mbufs following successful Tx.
+Requires that per queue, all mbufs come from the same mempool and has refcnt = 1.
+
+* **[uses] rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_MBUF_FAST_FREE``.
+* **[provides] rte_eth_dev_info**: ``tx_offload_capa,tx_queue_offload_capa:DEV_TX_OFFLOAD_MBUF_FAST_FREE``.
+
Timesync
--------
Usage doc =
Design doc =
Perf doc =
+Mbuf fast free =
offloads |= DEV_TX_OFFLOAD_UDP_CKSUM;
if (!(txq_flags & ETH_TXQ_FLAGS_NOXSUMTCP))
offloads |= DEV_TX_OFFLOAD_TCP_CKSUM;
+ if ((txq_flags & ETH_TXQ_FLAGS_NOREFCOUNT) &&
+ (txq_flags & ETH_TXQ_FLAGS_NOMULTMEMP))
+ offloads |= DEV_TX_OFFLOAD_MBUF_FAST_FREE;
*tx_offloads = offloads;
}
flags |= ETH_TXQ_FLAGS_NOXSUMUDP;
if (!(tx_offloads & DEV_TX_OFFLOAD_TCP_CKSUM))
flags |= ETH_TXQ_FLAGS_NOXSUMTCP;
+ if (tx_offloads & DEV_TX_OFFLOAD_MBUF_FAST_FREE)
+ flags |= (ETH_TXQ_FLAGS_NOREFCOUNT | ETH_TXQ_FLAGS_NOMULTMEMP);
*txq_flags = flags;
}
*/
#define DEV_TX_OFFLOAD_MULTI_SEGS 0x00008000
/**< Device supports multi segment send. */
+#define DEV_TX_OFFLOAD_MBUF_FAST_FREE 0x00010000
+/**< Device supports optimization for fast release of mbufs.
+ * When set application must guarantee that per-queue all mbufs comes from
+ * the same mempool and has refcnt = 1.
+ */
struct rte_pci_device;