c19f95b320
Add support to receive CPT processed packets on Rx for CN9K. Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
54 lines
2.6 KiB
C
54 lines
2.6 KiB
C
/* SPDX-License-Identifier: BSD-3-Clause
|
|
* Copyright(C) 2021 Marvell.
|
|
*/
|
|
|
|
#include "cn9k_worker.h"
|
|
#include "cnxk_eventdev.h"
|
|
#include "cnxk_worker.h"
|
|
|
|
#define R(name, f6, f5, f4, f3, f2, f1, f0, flags) \
|
|
uint16_t __rte_hot cn9k_sso_hws_dual_deq_##name( \
|
|
void *port, struct rte_event *ev, uint64_t timeout_ticks) \
|
|
{ \
|
|
struct cn9k_sso_hws_dual *dws = port; \
|
|
uint16_t gw; \
|
|
\
|
|
RTE_SET_USED(timeout_ticks); \
|
|
if (dws->swtag_req) { \
|
|
dws->swtag_req = 0; \
|
|
cnxk_sso_hws_swtag_wait( \
|
|
dws->ws_state[!dws->vws].tag_op); \
|
|
return 1; \
|
|
} \
|
|
\
|
|
gw = cn9k_sso_hws_dual_get_work( \
|
|
&dws->ws_state[dws->vws], &dws->ws_state[!dws->vws], \
|
|
ev, flags, dws->lookup_mem, dws->tstamp); \
|
|
dws->vws = !dws->vws; \
|
|
return gw; \
|
|
} \
|
|
\
|
|
uint16_t __rte_hot cn9k_sso_hws_dual_deq_seg_##name( \
|
|
void *port, struct rte_event *ev, uint64_t timeout_ticks) \
|
|
{ \
|
|
struct cn9k_sso_hws_dual *dws = port; \
|
|
uint16_t gw; \
|
|
\
|
|
RTE_SET_USED(timeout_ticks); \
|
|
if (dws->swtag_req) { \
|
|
dws->swtag_req = 0; \
|
|
cnxk_sso_hws_swtag_wait( \
|
|
dws->ws_state[!dws->vws].tag_op); \
|
|
return 1; \
|
|
} \
|
|
\
|
|
gw = cn9k_sso_hws_dual_get_work( \
|
|
&dws->ws_state[dws->vws], &dws->ws_state[!dws->vws], \
|
|
ev, flags, dws->lookup_mem, dws->tstamp); \
|
|
dws->vws = !dws->vws; \
|
|
return gw; \
|
|
}
|
|
|
|
NIX_RX_FASTPATH_MODES
|
|
#undef R
|