o-du/phy
Intel O-RAN/X-RAN Generated Doxygen Documentation
xran_common.h
Go to the documentation of this file.
1 /******************************************************************************
2 *
3 * Copyright (c) 2019 Intel.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 *******************************************************************************/
18 
27 #ifndef _XRAN_COMMON_H_
28 #define _XRAN_COMMON_H_
29 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33 
34 #include <stdio.h>
35 #include <unistd.h>
36 #include <sys/param.h>
37 #include <sys/queue.h>
38 
39 #include <rte_common.h>
40 #include <rte_mbuf.h>
41 #include <rte_timer.h>
42 
43 #include "xran_fh_o_du.h"
44 #include "xran_pkt_up.h"
45 #include "xran_cp_api.h"
46 
47 #define O_DU 0
48 #define O_RU 1
49 
50 #define N_SC_PER_PRB 12
51 #define MAX_N_FULLBAND_SC 273
52 #define N_SYM_PER_SLOT 14
53 #define SUBFRAME_DURATION_US 1000
54 #define SLOTNUM_PER_SUBFRAME (SUBFRAME_DURATION_US/interval_us)
55 #define SUBFRAMES_PER_SYSTEMFRAME 10
56 #define SLOTS_PER_SYSTEMFRAME (SLOTNUM_PER_SUBFRAME*SUBFRAMES_PER_SYSTEMFRAME)
57 
58 /* PRACH data samples are 32 bits wide, 16bits for I and 16bits for Q. Each packet contains 839 samples for long sequence or 144*14 (max) for short sequence. The payload length is 3356 octets.*/
59 #define PRACH_PLAYBACK_BUFFER_BYTES (144*14*4L)
60 
61 #define PRACH_SRS_BUFFER_BYTES (144*14*4L)
62 
64 #define XRAN_MAX_NUM_SECTIONS (N_SYM_PER_SLOT* (XRAN_MAX_ANTENNA_NR*2) + XRAN_MAX_ANT_ARRAY_ELM_NR)
65 
66 #define XRAN_MAX_MBUF_LEN 9600
67 #define NSEC_PER_SEC 1000000000L
68 #define TIMER_RESOLUTION_CYCLES 1596*1 /* 1us */
69 #define XRAN_RING_SIZE 512 /*4*14*8 pow of 2 */
70 #define XRAN_NAME_MAX_LEN (64)
71 #define XRAN_RING_NUM (3)
72 
73 #define XranDiffSymIdx(prevSymIdx, currSymIdx, numTotalSymIdx) ((prevSymIdx > currSymIdx) ? ((currSymIdx + numTotalSymIdx) - prevSymIdx) : (currSymIdx - prevSymIdx))
74 
75 #define XRAN_MLOG_VAR 0
77 /* PRACH configuration table defines */
78 #define XRAN_PRACH_CANDIDATE_PREAMBLE (2)
79 #define XRAN_PRACH_CANDIDATE_Y (2)
80 #define XRAN_PRACH_CANDIDATE_SLOT (40)
81 #define XRAN_PRACH_CONFIG_TABLE_SIZE (256)
82 #define XRAN_PRACH_PREAMBLE_FORMAT_OF_ABC (9)
83 typedef enum
84 {
85  FORMAT_0 = 0,
100 
101 /* add PRACH used config table, same structure as used in refPHY */
102 typedef struct
103 {
104  uint8_t prachConfigIdx;
105  uint8_t preambleFmrt[XRAN_PRACH_CANDIDATE_PREAMBLE];
106  uint8_t x;
108  uint8_t slotNr[XRAN_PRACH_CANDIDATE_SLOT];
109  uint8_t slotNrNum;
110  uint8_t startingSym;
113  uint8_t duration;
115 
116 typedef struct
117 {
118  uint8_t preambleFmrt;
119  uint16_t lRALen;
120  uint8_t fRA;
121  uint32_t nu;
122  uint16_t nRaCp;
124 
126 {
127  uint8_t filterIdx;
128  uint8_t startSymId;
129  uint16_t startPrbc;
130  uint8_t numPrbc;
131  uint8_t numSymbol;
132  uint16_t timeOffset;
133  int32_t freqOffset;
136  uint8_t x;
139  uint8_t eAxC_offset;
140 };
141 
142 #define XRAN_MAX_POOLS_PER_SECTOR_NR 8
144 typedef struct sectorHandleInfo
145 {
148  uint16_t nIndex;
149  uint16_t nXranPort;
150  /* Unique ID of an handle shared between phy layer and library */
154  struct rte_mempool * p_bufferPool[XRAN_MAX_POOLS_PER_SECTOR_NR];
155  uint32_t bufferPoolElmSz[XRAN_MAX_POOLS_PER_SECTOR_NR];
156  uint32_t bufferPoolNumElm[XRAN_MAX_POOLS_PER_SECTOR_NR];
157 
159 
160 typedef void (*XranSymCallbackFn)(struct rte_timer *tim, void* arg);
161 
165  LIST_ENTRY(cb_elem_entry) pointers;
166 };
167 
168 /* Callback function to send mbuf to the ring */
169 typedef int (*xran_ethdi_mbuf_send_fn)(struct rte_mbuf *mb, uint16_t ethertype);
170 
171 /*
172  * manage one cell's all Ethernet frames for one DL or UL LTE subframe
173  */
174 typedef struct {
175  /* -1-this subframe is not used in current frame format
176  0-this subframe can be transmitted, i.e., data is ready
177  1-this subframe is waiting transmission, i.e., data is not ready
178  10 - DL transmission missing deadline. When FE needs this subframe data but bValid is still 1,
179  set bValid to 10.
180  */
181  int32_t bValid ; // when UL rx, it is subframe index.
182  int32_t nSegToBeGen;
183  int32_t nSegGenerated; // how many date segment are generated by DL LTE processing or received from FE
184  // -1 means that DL packet to be transmitted is not ready in BS
185  int32_t nSegTransferred; // number of data segments has been transmitted or received
186  struct rte_mbuf *pData[XRAN_N_MAX_BUFFER_SEGMENT]; // point to DPDK allocated memory pool
187  struct xran_buffer_list sBufferList;
189 
190 
191 #define XranIncrementJob(i) ((i >= (XRAN_SYM_JOB_SIZE-1)) ? 0 : (i+1))
192 
193 #define XRAN_MAX_PKT_BURST_PER_SYM 32
194 #define XRAN_MAX_PACKET_FRAG 9
195 
196 #define MBUF_TABLE_SIZE (2 * MAX(XRAN_MAX_PKT_BURST_PER_SYM, XRAN_MAX_PACKET_FRAG))
197 
198 struct mbuf_table {
199  uint16_t len;
200  struct rte_mbuf *m_table[MBUF_TABLE_SIZE];
201 };
202 
204 {
205  uint8_t sector_id;
206  uint8_t xran_port_id;
207  struct xran_eaxcid_config eAxc_id_cfg;
208  struct xran_fh_init fh_init;
209  struct xran_fh_config fh_cfg;
210  struct xran_prach_cp_config PrachCPConfig;
211 
212  uint32_t enablePrach;
213  uint32_t enableCP;
214 
216  int64_t offset_sec;
217  int64_t offset_nsec; //offset to GPS time calcuated based on alpha and beta
218 
219  uint32_t enableSrs;
220  struct xran_srs_config srs_cfg;
222  BbuIoBufCtrlStruct sFrontHaulTxBbuIoBufCtrl[XRAN_N_FE_BUF_LEN][XRAN_MAX_SECTOR_NR][XRAN_MAX_ANTENNA_NR];
223  BbuIoBufCtrlStruct sFrontHaulTxPrbMapBbuIoBufCtrl[XRAN_N_FE_BUF_LEN][XRAN_MAX_SECTOR_NR][XRAN_MAX_ANTENNA_NR];
224  BbuIoBufCtrlStruct sFrontHaulRxBbuIoBufCtrl[XRAN_N_FE_BUF_LEN][XRAN_MAX_SECTOR_NR][XRAN_MAX_ANTENNA_NR];
225  BbuIoBufCtrlStruct sFrontHaulRxPrbMapBbuIoBufCtrl[XRAN_N_FE_BUF_LEN][XRAN_MAX_SECTOR_NR][XRAN_MAX_ANTENNA_NR];
226  BbuIoBufCtrlStruct sFHPrachRxBbuIoBufCtrl[XRAN_N_FE_BUF_LEN][XRAN_MAX_SECTOR_NR][XRAN_MAX_ANTENNA_NR];
227  BbuIoBufCtrlStruct sFHSrsRxBbuIoBufCtrl[XRAN_N_FE_BUF_LEN][XRAN_MAX_SECTOR_NR][XRAN_MAX_ANT_ARRAY_ELM_NR];
228 
229  /* buffers lists */
235 
237 
239  void *pCallbackTag[XRAN_MAX_SECTOR_NR];
240 
242  void *pPrachCallbackTag[XRAN_MAX_SECTOR_NR];
243 
245  void *pSrsCallbackTag[XRAN_MAX_SECTOR_NR];
246 
247  LIST_HEAD(sym_cb_elem_list, cb_elem_entry) sym_cb_list_head[XRAN_MAX_SECTOR_NR][XRAN_NUM_OF_SYMBOL_PER_SLOT];
248 
249  int32_t sym_up;
250  int32_t sym_up_ul;
251 
253  void *TtiCbParam[XRAN_CB_MAX];
254  uint32_t SkipTti[XRAN_CB_MAX];
255 
257 
260  int rx_packet_callback_tracker[XRAN_N_FE_BUF_LEN][XRAN_MAX_SECTOR_NR];
261  int rx_packet_prach_callback_tracker[XRAN_N_FE_BUF_LEN][XRAN_MAX_SECTOR_NR];
262  int prach_start_symbol[XRAN_MAX_SECTOR_NR];
263  int prach_last_symbol[XRAN_MAX_SECTOR_NR];
264 
266 
267  struct rte_mempool *direct_pool;
268  struct rte_mempool *indirect_pool;
269  struct mbuf_table tx_mbufs[RTE_MAX_ETHPORTS];
270 
271  struct xran_common_counters fh_counters;
272 
278 };
279 
280 extern long rx_counter;
281 extern long tx_counter;
282 extern long tx_bytes_counter;
283 extern long rx_bytes_counter;
284 extern long tx_bytes_per_sec;
285 extern long rx_bytes_per_sec;
286 
287 
292 
293 int process_mbuf(struct rte_mbuf *pkt);
294 int process_ring(struct rte_ring *r);
295 int ring_processing_thread(void *args);
296 int packets_dump_thread(void *args);
297 
298 int send_symbol_ex(enum xran_pkt_dir direction,
299  uint16_t section_id,
300  struct rte_mbuf *mb,
301  struct rb_map *data,
302  const enum xran_input_byte_order iq_buf_byte_order,
303  uint8_t frame_id,
304  uint8_t subframe_id,
305  uint8_t slot_id,
306  uint8_t symbol_no,
307  int prb_start,
308  int prb_num,
309  uint8_t CC_ID,
310  uint8_t RU_Port_ID,
311  uint8_t seq_id);
312 
313 int32_t prepare_symbol_ex(enum xran_pkt_dir direction,
314  uint16_t section_id,
315  struct rte_mbuf *mb,
316  struct rb_map *data,
317  uint8_t compMeth,
318  uint8_t iqWidth,
319  const enum xran_input_byte_order iq_buf_byte_order,
320  uint8_t frame_id,
321  uint8_t subframe_id,
322  uint8_t slot_id,
323  uint8_t symbol_no,
324  int prb_start,
325  int prb_num,
326  uint8_t CC_ID,
327  uint8_t RU_Port_ID,
328  uint8_t seq_id,
329  uint32_t do_copy);
330 
331 int send_cpmsg(void *pHandle, struct rte_mbuf *mbuf,struct xran_cp_gen_params *params,
332  struct xran_section_gen_info *sect_geninfo, uint8_t cc_id, uint8_t ru_port_id, uint8_t seq_id);
333 
334 int32_t generate_cpmsg_dlul(void *pHandle, struct xran_cp_gen_params *params, struct xran_section_gen_info *sect_geninfo, struct rte_mbuf *mbuf,
335  enum xran_pkt_dir dir, uint8_t frame_id, uint8_t subframe_id, uint8_t slot_id,
336  uint8_t startsym, uint8_t numsym, uint16_t prb_start, uint16_t prb_num,int16_t iq_buffer_offset, int16_t iq_buffer_len,
337  uint16_t beam_id, uint8_t cc_id, uint8_t ru_port_id, uint8_t comp_method, uint8_t iqWidth, uint8_t seq_id, uint8_t symInc);
338 
339 int generate_cpmsg_prach(void *pHandle, struct xran_cp_gen_params *params, struct xran_section_gen_info *sect_geninfo, struct rte_mbuf *mbuf, struct xran_device_ctx *pxran_lib_ctx,
340  uint8_t frame_id, uint8_t subframe_id, uint8_t slot_id,
341  uint16_t beam_id, uint8_t cc_id, uint8_t prach_port_id, uint8_t seq_id);
342 
343 struct xran_eaxcid_config *xran_get_conf_eAxC(void *pHandle);
344 uint8_t xran_get_conf_prach_scs(void *pHandle);
345 uint8_t xran_get_conf_fftsize(void *pHandle);
346 uint8_t xran_get_conf_numerology(void *pHandle);
347 uint8_t xran_get_conf_iqwidth(void *pHandle);
348 uint8_t xran_get_conf_compmethod(void *pHandle);
349 uint8_t xran_get_conf_num_bfweights(void *pHandle);
350 
351 uint8_t xran_get_num_cc(void *pHandle);
352 uint8_t xran_get_num_eAxc(void *pHandle);
353 uint8_t xran_get_num_eAxcUl(void *pHandle);
354 uint8_t xran_get_num_ant_elm(void *pHandle);
355 enum xran_category xran_get_ru_category(void *pHandle);
356 
357 struct xran_device_ctx *xran_dev_get_ctx(void);
358 
360 
361 uint16_t xran_alloc_sectionid(void *pHandle, uint8_t dir, uint8_t cc_id, uint8_t ant_id, uint8_t slot_id);
362 uint8_t xran_get_seqid(void *pHandle, uint8_t dir, uint8_t cc_id, uint8_t ant_id, uint8_t slot_id);
363 int32_t ring_processing_func(void);
364 int xran_init_prach(struct xran_fh_config* pConf, struct xran_device_ctx * p_xran_dev_ctx);
365 void xran_updateSfnSecStart(void);
366 
367 struct cb_elem_entry *xran_create_cb(XranSymCallbackFn cb_fn, void *cb_data);
368 int xran_destroy_cb(struct cb_elem_entry * cb_elm);
369 
370 #ifdef __cplusplus
371 }
372 #endif
373 
374 #endif
375 
const xRANPrachConfigTableStruct gxranPrachDataTable_sub6_fdd[XRAN_PRACH_CONFIG_TABLE_SIZE]
uint16_t xran_alloc_sectionid(void *pHandle, uint8_t dir, uint8_t cc_id, uint8_t ant_id, uint8_t slot_id)
Definition: xran_main.c:379
uint8_t xran_get_conf_fftsize(void *pHandle)
Get the configuration of FFT size for RU.
Definition: xran_main.c:2985
uint8_t xran_get_conf_numerology(void *pHandle)
Get the configuration of nummerology.
Definition: xran_main.c:2995
int xran_register_cb_mbuf2ring(xran_ethdi_mbuf_send_fn mbuf_send_cp, xran_ethdi_mbuf_send_fn mbuf_send_up)
Definition: xran_main.c:2918
const xRANPrachConfigTableStruct gxranPrachDataTable_sub6_tdd[XRAN_PRACH_CONFIG_TABLE_SIZE]
#define XRAN_MAX_ANT_ARRAY_ELM_NR
Definition: xran_fh_o_du.h:118
int process_mbuf(struct rte_mbuf *pkt)
Definition: xran_common.c:143
uint8_t xran_get_num_eAxc(void *pHandle)
Get the configuration of the number of antenna for UL.
Definition: xran_main.c:3039
#define XRAN_N_FE_BUF_LEN
Definition: xran_fh_o_du.h:109
xran_pkt_dir
Definition: xran_pkt.h:146
uint8_t xran_get_seqid(void *pHandle, uint8_t dir, uint8_t cc_id, uint8_t ant_id, uint8_t slot_id)
uint8_t xran_port_id
Definition: xran_common.h:206
uint16_t len
Definition: xran_common.h:199
uint8_t y[XRAN_PRACH_CANDIDATE_Y]
Definition: xran_common.h:137
long rx_counter
Definition: xran_common.c:117
xran_category
Definition: xran_fh_o_du.h:262
long tx_bytes_counter
Definition: xran_common.c:119
int16_t(* phy_decoder_poll_fn)(void)
Definition: xran_fh_o_du.h:251
xran_ethdi_mbuf_send_fn send_upmbuf2ring
Definition: xran_common.h:277
int xran_destroy_cb(struct cb_elem_entry *cb_elm)
Definition: xran_common.c:136
uint32_t symInc
Definition: xran_pkt_cp.h:242
long rx_bytes_per_sec
Definition: xran_common.c:122
#define XRAN_MAX_SECTOR_NR
Definition: xran_fh_o_du.h:110
#define XRAN_PRACH_CONFIG_TABLE_SIZE
Definition: xran_common.h:81
const xRANPrachConfigTableStruct gxranPrachDataTable_mmw[XRAN_PRACH_CONFIG_TABLE_SIZE]
uint8_t xran_get_num_eAxcUl(void *pHandle)
Get the configuration of the number of antenna.
Definition: xran_main.c:3059
PreambleFormatEnum
Definition: xran_common.h:83
xran_ethdi_mbuf_send_fn send_cpmbuf2ring
Definition: xran_common.h:276
struct rte_mempool * indirect_pool
Definition: xran_common.h:268
struct xran_eaxcid_config * xran_get_conf_eAxC(void *pHandle)
Get the configuration of eAxC ID.
Definition: xran_main.c:2955
long tx_bytes_per_sec
Definition: xran_common.c:121
#define XRAN_MAX_POOLS_PER_SECTOR_NR
Definition: xran_common.h:142
#define XRAN_N_MAX_BUFFER_SEGMENT
Definition: xran_fh_o_du.h:133
#define XRAN_MAX_ANTENNA_NR
Definition: xran_fh_o_du.h:111
int ring_processing_thread(void *args)
Definition: xran_common.c:742
uint8_t xran_get_conf_prach_scs(void *pHandle)
Get the configuration of subcarrier spacing for PRACH.
Definition: xran_main.c:2975
void * pSymCallbackTag
Definition: xran_common.h:164
uint8_t occassionsInPrachSlot
Definition: xran_common.h:135
struct cb_elem_entry * xran_create_cb(XranSymCallbackFn cb_fn, void *cb_data)
Definition: xran_common.c:125
#define XRAN_PRACH_CANDIDATE_PREAMBLE
Definition: xran_common.h:78
Definition: xran_common.h:162
int xran_init_prach(struct xran_fh_config *pConf, struct xran_device_ctx *p_xran_dev_ctx)
Definition: xran_main.c:308
long tx_counter
Definition: xran_common.c:118
#define XRAN_PRACH_CANDIDATE_SLOT
Definition: xran_common.h:80
int32_t sym_up_ul
Definition: xran_common.h:250
int32_t DynamicSectionEna
Definition: xran_common.h:215
struct xran_device_ctx * xran_dev_get_ctx(void)
Definition: xran_main.c:223
long rx_bytes_counter
Definition: xran_common.c:120
phy_decoder_poll_fn bbdev_dec
Definition: xran_common.h:274
uint32_t enableCP
Definition: xran_common.h:213
#define MBUF_TABLE_SIZE
Definition: xran_common.h:196
int send_cpmsg(void *pHandle, struct rte_mbuf *mbuf, struct xran_cp_gen_params *params, struct xran_section_gen_info *sect_geninfo, uint8_t cc_id, uint8_t ru_port_id, uint8_t seq_id)
Definition: xran_common.c:510
uint8_t xran_get_conf_num_bfweights(void *pHandle)
Get the configuration of the total number of beamforming weights on RU.
Definition: xran_main.c:2965
xran_input_byte_order
Definition: xran_fh_o_du.h:471
int64_t offset_sec
Definition: xran_common.h:216
uint16_t nXranPort
Definition: xran_common.h:149
int32_t ring_processing_func(void)
Definition: xran_common.c:700
uint8_t xran_get_num_ant_elm(void *pHandle)
Get the configuration of the number of antenna elements.
Definition: xran_main.c:3069
uint32_t enablePrach
Definition: xran_common.h:212
uint8_t sector_id
Definition: xran_common.h:205
void(* XranSymCallbackFn)(struct rte_timer *tim, void *arg)
Definition: xran_common.h:160
uint8_t xran_get_num_cc(void *pHandle)
Get the configuration of the number of component carriers.
Definition: xran_main.c:3029
int32_t prepare_symbol_ex(enum xran_pkt_dir direction, uint16_t section_id, struct rte_mbuf *mb, struct rb_map *data, uint8_t compMeth, uint8_t iqWidth, const enum xran_input_byte_order iq_buf_byte_order, uint8_t frame_id, uint8_t subframe_id, uint8_t slot_id, uint8_t symbol_no, int prb_start, int prb_num, uint8_t CC_ID, uint8_t RU_Port_ID, uint8_t seq_id, uint32_t do_copy)
Definition: xran_common.c:348
#define XRAN_PRACH_CANDIDATE_Y
Definition: xran_common.h:79
const xRANPrachPreambleLRAStruct gxranPreambleforLRA[13]
uint32_t enableSrs
Definition: xran_common.h:219
struct sectorHandleInfo XranSectorHandleInfo
uint8_t xran_get_conf_compmethod(void *pHandle)
Get the configuration of compression method for RU.
Definition: xran_main.c:3018
enum xran_category xran_get_ru_category(void *pHandle)
Get configuration of O-RU (Cat A or Cat B)
Definition: xran_main.c:3049
int(* xran_fh_tti_callback_fn)(void *)
Definition: xran_fh_o_du.h:242
#define XRAN_MAX_NUM_OF_SRS_SYMBOL_PER_SLOT
Definition: xran_fh_o_du.h:123
#define XRAN_NUM_OF_SYMBOL_PER_SLOT
Definition: xran_fh_o_du.h:122
void xran_updateSfnSecStart(void)
Definition: xran_main.c:201
uint8_t isPRACHslot[XRAN_PRACH_CANDIDATE_SLOT]
Definition: xran_common.h:138
uint8_t xran_get_conf_iqwidth(void *pHandle)
Get the configuration of IQ bit width for RU.
Definition: xran_main.c:3005
This file provides public interface to xRAN Front Haul layer implementation as defined in the ORAN-WG...
uint16_t ethertype
Definition: ethdi.c:114
Definitions and support functions to process XRAN packet.
struct rte_mempool * direct_pool
Definition: xran_common.h:267
int packets_dump_thread(void *args)
XranSymCallbackFn pSymCallback
Definition: xran_common.h:163
int16_t(* phy_encoder_poll_fn)(void)
Definition: xran_fh_o_du.h:248
int send_symbol_ex(enum xran_pkt_dir direction, uint16_t section_id, struct rte_mbuf *mb, struct rb_map *data, const enum xran_input_byte_order iq_buf_byte_order, uint8_t frame_id, uint8_t subframe_id, uint8_t slot_id, uint8_t symbol_no, int prb_start, int prb_num, uint8_t CC_ID, uint8_t RU_Port_ID, uint8_t seq_id)
Definition: xran_common.c:436
int32_t generate_cpmsg_dlul(void *pHandle, struct xran_cp_gen_params *params, struct xran_section_gen_info *sect_geninfo, struct rte_mbuf *mbuf, enum xran_pkt_dir dir, uint8_t frame_id, uint8_t subframe_id, uint8_t slot_id, uint8_t startsym, uint8_t numsym, uint16_t prb_start, uint16_t prb_num, int16_t iq_buffer_offset, int16_t iq_buffer_len, uint16_t beam_id, uint8_t cc_id, uint8_t ru_port_id, uint8_t comp_method, uint8_t iqWidth, uint8_t seq_id, uint8_t symInc)
Definition: xran_common.c:535
int process_ring(struct rte_ring *r)
Definition: xran_common.c:676
int generate_cpmsg_prach(void *pHandle, struct xran_cp_gen_params *params, struct xran_section_gen_info *sect_geninfo, struct rte_mbuf *mbuf, struct xran_device_ctx *pxran_lib_ctx, uint8_t frame_id, uint8_t subframe_id, uint8_t slot_id, uint16_t beam_id, uint8_t cc_id, uint8_t prach_port_id, uint8_t seq_id)
Definition: xran_common.c:595
uint32_t nBufferPoolIndex
Definition: xran_common.h:152
int(* xran_ethdi_mbuf_send_fn)(struct rte_mbuf *mb, uint16_t ethertype)
Definition: xran_common.h:169
int64_t offset_nsec
Definition: xran_common.h:217
void(* xran_transport_callback_fn)(void *, xran_status_t)
Definition: xran_fh_o_du.h:245
struct sectorHandleInfo * PXranSectorHandleInfo
This file provides the definitions for Control Plane Messages APIs.
phy_encoder_poll_fn bbdev_enc
Definition: xran_common.h:273