Branch data Line data Source code
1 : : /* SPDX-License-Identifier: BSD-3-Clause
2 : : * Copyright(C) 2021 Marvell.
3 : : */
4 : :
5 : : #ifndef _OTX_EP_RXTX_H_
6 : : #define _OTX_EP_RXTX_H_
7 : :
8 : : #include <rte_byteorder.h>
9 : :
10 : : #define OTX_EP_RXD_ALIGN 8
11 : : #define OTX_EP_TXD_ALIGN 8
12 : :
13 : : #define OTX_EP_IQ_SEND_FAILED (-1)
14 : : #define OTX_EP_IQ_SEND_SUCCESS (0)
15 : :
16 : : #define OTX_EP_MAX_DELAYED_PKT_RETRIES 10
17 : :
18 : : #define OTX_EP_FSZ 28
19 : : #define OTX2_EP_FSZ 24
20 : : #define OTX_EP_MAX_INSTR 256
21 : :
22 : : /* SDP_LENGTH_S specifies packet length and is of 8-byte size */
23 : : #define OTX_EP_INFO_SIZE 8
24 : : #define DROQ_REFILL_THRESHOLD 64
25 : : #define OTX2_SDP_REQUEST_ISM (0x1ULL << 63)
26 : :
27 : : typedef uint32_t (*otx_ep_check_pkt_count_t)(void *queue);
28 : :
29 : : static inline uint32_t
30 : : otx_ep_incr_index(uint32_t index, uint32_t count, uint32_t max)
31 : : {
32 [ # # # # ]: 0 : return ((index + count) & (max - 1));
33 : : }
34 : :
35 : : uint16_t
36 : : otx_ep_xmit_pkts(void *tx_queue, struct rte_mbuf **pkts, uint16_t nb_pkts);
37 : :
38 : : uint16_t
39 : : otx2_ep_xmit_pkts(void *tx_queue, struct rte_mbuf **pkts, uint16_t nb_pkts);
40 : :
41 : : uint16_t
42 : : otx_ep_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t budget);
43 : :
44 : : uint16_t
45 : : cnxk_ep_xmit_pkts(void *tx_queue, struct rte_mbuf **pkts, uint16_t nb_pkts);
46 : :
47 : : uint16_t
48 : : cnxk_ep_xmit_pkts_mseg(void *tx_queue, struct rte_mbuf **pkts, uint16_t nb_pkts);
49 : :
50 : : uint16_t
51 : : cnxk_ep_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t budget);
52 : :
53 : : uint16_t
54 : : cnxk_ep_recv_pkts_sse(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t budget);
55 : :
56 : : uint16_t
57 : : cnxk_ep_recv_pkts_avx(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t budget);
58 : :
59 : : uint16_t
60 : : cnxk_ep_recv_pkts_mseg(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t budget);
61 : :
62 : : uint16_t
63 : : cn9k_ep_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t budget);
64 : :
65 : : uint16_t
66 : : cnxk_ep_recv_pkts_neon(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts);
67 : :
68 : : uint16_t
69 : : cn9k_ep_recv_pkts_sse(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t budget);
70 : :
71 : : uint16_t
72 : : cn9k_ep_recv_pkts_avx(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t budget);
73 : :
74 : : uint16_t
75 : : cn9k_ep_recv_pkts_neon(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts);
76 : :
77 : : uint16_t
78 : : cn9k_ep_recv_pkts_mseg(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t budget);
79 : : #endif /* _OTX_EP_RXTX_H_ */
|