9526f3003e
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>
47 lines
1005 B
C
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_ */
|