numam-dpdk/drivers/net/octeontx_ep/otx_ep_rxtx.h
Nalla Pradeep 9526f3003e net/octeontx_ep: add Tx path
1. Packet transmit function for both otx and otx2 are added.
2. Flushing transmit(command) queue when pending commands are more than
   maximum allowed value (currently 16).
3. Scatter gather support if the packet spans multiple buffers.

Signed-off-by: Nalla Pradeep <pnalla@marvell.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
2021-01-29 18:16:12 +01:00

47 lines
1005 B
C

/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(C) 2021 Marvell.
*/
#ifndef _OTX_EP_RXTX_H_
#define _OTX_EP_RXTX_H_
#include <rte_byteorder.h>
#define OTX_EP_RXD_ALIGN 1
#define OTX_EP_TXD_ALIGN 1
#define OTX_EP_IQ_SEND_FAILED (-1)
#define OTX_EP_IQ_SEND_SUCCESS (0)
#define OTX_EP_MAX_DELAYED_PKT_RETRIES 10000
#define OTX_EP_FSZ 28
#define OTX2_EP_FSZ 24
#define OTX_EP_MAX_INSTR 16
static inline void
otx_ep_swap_8B_data(uint64_t *data, uint32_t blocks)
{
/* Swap 8B blocks */
while (blocks) {
*data = rte_bswap64(*data);
blocks--;
data++;
}
}
static inline uint32_t
otx_ep_incr_index(uint32_t index, uint32_t count, uint32_t max)
{
return ((index + count) & (max - 1));
}
uint16_t
otx_ep_xmit_pkts(void *tx_queue, struct rte_mbuf **pkts, uint16_t nb_pkts);
uint16_t
otx2_ep_xmit_pkts(void *tx_queue, struct rte_mbuf **pkts, uint16_t nb_pkts);
uint16_t
otx_ep_recv_pkts(void *rx_queue,
struct rte_mbuf **rx_pkts,
uint16_t budget);
#endif /* _OTX_EP_RXTX_H_ */