uint16_t last_head; /**< last ring head */
uint16_t last_tail; /**< last ring tail */
+ struct rte_mbuf **buffers;
+ /**< Stored mbufs. Used in zero-copy tx. Slave stores transmitted
+ * mbufs to free them once master has received them.
+ */
+
/* rx/tx info */
uint64_t n_pkts; /**< number of rx/tx packets */
uint64_t n_bytes; /**< number of rx/tx bytes */
- uint64_t n_err; /**< number of tx errors */
-
- memif_ring_t *ring; /**< pointer to ring */
struct rte_intr_handle intr_handle; /**< interrupt handle */
char secret[ETH_MEMIF_SECRET_SIZE]; /**< secret (optional security parameter) */
struct memif_control_channel *cc; /**< control channel */
-
- struct memif_region *regions[ETH_MEMIF_MAX_REGION_NUM];
- /**< shared memory regions */
- memif_region_index_t regions_num; /**< number of regions */
+ rte_spinlock_t cc_lock; /**< control channel lock */
/* remote info */
char remote_name[RTE_DEV_NAME_MAX_LEN]; /**< remote app name */
/**< local disconnect reason */
char remote_disc_string[ETH_MEMIF_DISC_STRING_SIZE];
/**< remote disconnect reason */
+};
- struct rte_vdev_device *vdev; /**< vdev handle */
+struct pmd_process_private {
+ struct memif_region *regions[ETH_MEMIF_MAX_REGION_NUM];
+ /**< shared memory regions */
+ memif_region_index_t regions_num; /**< number of regions */
};
/**
* Unmap shared memory and free regions from memory.
*
- * @param pmd
- * device internals
+ * @param proc_private
+ * device process private data
*/
-void memif_free_regions(struct pmd_internals *pmd);
+void memif_free_regions(struct rte_eth_dev *dev);
/**
* Finalize connection establishment process. Map shared memory file