o-du/phy
Intel O-RAN/X-RAN Generated Doxygen Documentation
|
This file provides public interface to xRAN Front Haul layer implementation as defined in the ORAN-WG4.CUS.0-v01.00 spec. Implementation specific to Lower Layer Split Central Unit (O-DU): a logical node that includes the eNB/gNB functions as listed in section 2.1 split option 7-2x, excepting those functions allocated exclusively to the O-RU. The O-DU controls the operation of O-RUs for 5G NR Radio Access technology. More...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <inttypes.h>
#include <sys/types.h>
#include <sys/queue.h>
#include <netinet/in.h>
#include <setjmp.h>
#include <stdarg.h>
#include <ctype.h>
#include <errno.h>
#include <getopt.h>
#include <unistd.h>
Go to the source code of this file.
Data Structures | |
struct | xran_cb_tag |
struct | xran_io_cfg |
struct | xran_eaxcid_config |
struct | xran_fh_init |
struct | xran_cp_bf_weight |
struct | xran_cp_bf_attribute |
struct | xran_cp_bf_precoding |
struct | xran_section_desc |
struct | xran_prb_elm |
struct | xran_prb_map |
struct | xran_prach_config |
struct | xran_srs_config |
struct | xran_slot_config |
struct | xran_frame_config |
struct | xran_ru_config |
struct | xran_fh_config |
struct | xran_common_counters |
struct | xran_flat_buffer |
struct | xran_buffer_list |
Macros | |
#define | XRAN_STATUS_SUCCESS (0) |
#define | XRAN_STATUS_FAIL (-1) |
#define | XRAN_STATUS_RETRY (-2) |
#define | XRAN_STATUS_RESOURCE (-3) |
#define | XRAN_STATUS_INVALID_PARAM (-4) |
#define | XRAN_STATUS_FATAL (-5) |
#define | XRAN_STATUS_UNSUPPORTED (-6) |
#define | XRAN_STATUS_INVALID_PACKET (-7) |
#define | XranGetTtiNum(symIdx, numSymPerTti) (((uint32_t)symIdx / (uint32_t)numSymPerTti)) |
#define | XranGetSymNum(symIdx, numSymPerTti) (((uint32_t)symIdx % (uint32_t)numSymPerTti)) |
#define | XranGetFrameNum(tti, SFNatSecStart, numSubFramePerSystemFrame, numSlotPerSubFrame) ((((uint32_t)tti / ((uint32_t)numSubFramePerSystemFrame * (uint32_t)numSlotPerSubFrame)) + SFNatSecStart) & 0x3FF) |
#define | XranGetSubFrameNum(tti, numSlotPerSubFrame, numSubFramePerSystemFrame) (((uint32_t)tti/(uint32_t)numSlotPerSubFrame) % (uint32_t)numSubFramePerSystemFrame) |
#define | XranGetSlotNum(tti, numSlotPerSfn) ((uint32_t)tti % ((uint32_t)numSlotPerSfn)) |
#define | XRAN_PORTS_NUM (1) |
#define | XRAN_N_FE_BUF_LEN (40) |
#define | XRAN_MAX_SECTOR_NR (12) |
#define | XRAN_MAX_ANTENNA_NR (16) |
#define | XRAN_MAX_PANEL_NR (1) |
#define | XRAN_MAX_TRX_ANTENNA_ARRAY (1) |
#define | XRAN_MAX_ANT_ARRAY_ELM_NR (64) |
#define | XRAN_NUM_OF_SYMBOL_PER_SLOT (14) |
#define | XRAN_MAX_NUM_OF_SRS_SYMBOL_PER_SLOT XRAN_NUM_OF_SYMBOL_PER_SLOT |
#define | XRAN_MAX_TDD_PERIODICITY (80) |
#define | XRAN_MAX_CELLS_PER_PORT (XRAN_MAX_SECTOR_NR) |
#define | XRAN_COMPONENT_CARRIERS_MAX (XRAN_MAX_SECTOR_NR) |
#define | XRAN_NUM_OF_ANT_RADIO (XRAN_MAX_SECTOR_NR*XRAN_MAX_ANTENNA_NR) |
#define | XRAN_MAX_PRBS (275) |
#define | XRAN_MAX_SECTIONS_PER_SYM (16) |
#define | XRAN_MAX_PKT_BURST (448+4) |
#define | XRAN_N_MAX_BUFFER_SEGMENT XRAN_MAX_PKT_BURST |
#define | XRAN_STRICT_PARM_CHECK (1) |
#define | XRAN_SLOT_TYPE_INVALID (0) |
#define | XRAN_SLOT_TYPE_DL (1) |
#define | XRAN_SLOT_TYPE_UL (2) |
#define | XRAN_SLOT_TYPE_SP (3) |
#define | XRAN_SLOT_TYPE_FDD (4) |
#define | XRAN_SLOT_TYPE_LAST (5) |
#define | XRAN_SYMBOL_TYPE_DL (0) |
#define | XRAN_SYMBOL_TYPE_UL (1) |
#define | XRAN_SYMBOL_TYPE_GUARD (2) |
#define | XRAN_SYMBOL_TYPE_FDD (3) |
#define | XRAN_NUM_OF_SLOT_IN_TDD_LOOP (80) |
#define | xran_log_dbg(fmt, ...) |
#define | xran_log_dbg(fmt, ...) |
#define | xran_log_wrn(fmt, ...) |
#define | xran_log_err(fmt, ...) |
Typedefs | |
typedef int32_t | xran_status_t |
typedef void(* | xran_callback_sym_fn) (void *) |
typedef int(* | xran_fh_tti_callback_fn) (void *) |
typedef void(* | xran_transport_callback_fn) (void *, xran_status_t) |
typedef int16_t(* | phy_encoder_poll_fn) (void) |
typedef int16_t(* | phy_decoder_poll_fn) (void) |
typedef void * | xran_cc_handle_t |
Functions | |
int32_t | xran_init (int argc, char *argv[], struct xran_fh_init *p_xran_fh_init, char *appName, void **pHandle) |
int32_t | xran_sector_get_instances (void *pHandle, uint16_t nNumInstances, xran_cc_handle_t *pSectorInstanceHandles) |
int32_t | xran_mm_init (void *pHandle, uint64_t nMemorySize, uint32_t nMemorySegmentSize) |
int32_t | xran_bm_init (void *pHandle, uint32_t *pPoolIndex, uint32_t nNumberOfBuffers, uint32_t nBufferSize) |
int32_t | xran_bm_allocate_buffer (void *pHandle, uint32_t nPoolIndex, void **ppData, void **ppCtrl) |
int32_t | xran_bm_free_buffer (void *pHandle, void *pData, void *pCtrl) |
int32_t | xran_mm_destroy (void *pHandle) |
int32_t | xran_5g_fronthault_config (void *pHandle, struct xran_buffer_list *pSrcBuffer[XRAN_MAX_ANTENNA_NR][XRAN_N_FE_BUF_LEN], struct xran_buffer_list *pSrcCpBuffer[XRAN_MAX_ANTENNA_NR][XRAN_N_FE_BUF_LEN], struct xran_buffer_list *pDstBuffer[XRAN_MAX_ANTENNA_NR][XRAN_N_FE_BUF_LEN], struct xran_buffer_list *pDstCpBuffer[XRAN_MAX_ANTENNA_NR][XRAN_N_FE_BUF_LEN], xran_transport_callback_fn pCallback, void *pCallbackTag) |
int32_t | xran_5g_prach_req (void *pHandle, struct xran_buffer_list *pDstBuffer[XRAN_MAX_ANTENNA_NR][XRAN_N_FE_BUF_LEN], xran_transport_callback_fn pCallback, void *pCallbackTag) |
int32_t | xran_5g_srs_req (void *pHandle, struct xran_buffer_list *pDstBuffer[XRAN_MAX_ANT_ARRAY_ELM_NR][XRAN_N_FE_BUF_LEN], xran_transport_callback_fn pCallback, void *pCallbackTag) |
uint32_t | xran_get_time_stats (uint64_t *total_time, uint64_t *used_time, uint32_t *core_used, uint32_t clear) |
int32_t | xran_open (void *pHandle, struct xran_fh_config *pConf) |
int32_t | xran_start (void *pHandle) |
int32_t | xran_stop (void *pHandle) |
int32_t | xran_close (void *pHandle) |
int32_t | xran_reg_sym_cb (void *pHandle, xran_callback_sym_fn symCb, void *symCbParam, uint8_t symb, uint8_t ant) |
int32_t | xran_reg_physide_cb (void *pHandle, xran_fh_tti_callback_fn Cb, void *cbParam, int skipTtiNum, enum callback_to_phy_id) |
int32_t | xran_get_slot_idx (uint32_t *nFrameIdx, uint32_t *nSubframeIdx, uint32_t *nSlotIdx, uint64_t *nSecond) |
int32_t | xran_get_common_counters (void *pXranLayerHandle, struct xran_common_counters *pStats) |
enum xran_if_state | xran_get_if_state (void) |
void * | xran_malloc (size_t buf_len) |
uint8_t * | xran_add_hdr_offset (uint8_t *dst, int16_t compMethod) |
This file provides public interface to xRAN Front Haul layer implementation as defined in the ORAN-WG4.CUS.0-v01.00 spec. Implementation specific to Lower Layer Split Central Unit (O-DU): a logical node that includes the eNB/gNB functions as listed in section 2.1 split option 7-2x, excepting those functions allocated exclusively to the O-RU. The O-DU controls the operation of O-RUs for 5G NR Radio Access technology.
Definition in file xran_fh_o_du.h.
#define XRAN_COMPONENT_CARRIERS_MAX (XRAN_MAX_SECTOR_NR) |
number of CCs
Definition at line 126 of file xran_fh_o_du.h.
#define xran_log_dbg | ( | fmt, | |
... | |||
) |
Definition at line 174 of file xran_fh_o_du.h.
#define xran_log_dbg | ( | fmt, | |
... | |||
) |
Definition at line 174 of file xran_fh_o_du.h.
#define xran_log_err | ( | fmt, | |
... | |||
) |
Definition at line 178 of file xran_fh_o_du.h.
#define xran_log_wrn | ( | fmt, | |
... | |||
) |
Definition at line 175 of file xran_fh_o_du.h.
#define XRAN_MAX_ANT_ARRAY_ELM_NR (64) |
Maximum number of Antenna Array Elemets in Antenna Array in the O-RU
Definition at line 118 of file xran_fh_o_du.h.
#define XRAN_MAX_ANTENNA_NR (16) |
Max number of extended Antenna-Carriers: a data flow for a single antenna (or spatial stream) for a single carrier in a single sector
Definition at line 111 of file xran_fh_o_du.h.
#define XRAN_MAX_CELLS_PER_PORT (XRAN_MAX_SECTOR_NR) |
Max cells mapped to XRAN port
Definition at line 125 of file xran_fh_o_du.h.
#define XRAN_MAX_NUM_OF_SRS_SYMBOL_PER_SLOT XRAN_NUM_OF_SYMBOL_PER_SLOT |
Max Number of SRS symbols per slot
Definition at line 123 of file xran_fh_o_du.h.
#define XRAN_MAX_PANEL_NR (1) |
Max number of Panels supported per O-RU
Definition at line 116 of file xran_fh_o_du.h.
#define XRAN_MAX_PKT_BURST (448+4) |
4x14x8 symbols per ms
Definition at line 132 of file xran_fh_o_du.h.
#define XRAN_MAX_PRBS (275) |
Max of PRBs per CC per antanna for 5G NR
Definition at line 128 of file xran_fh_o_du.h.
#define XRAN_MAX_SECTIONS_PER_SYM (16) |
Max number of different sections in single symbol (section is equal to RB allocation for UE)
Definition at line 130 of file xran_fh_o_du.h.
#define XRAN_MAX_SECTOR_NR (12) |
Max sectors per XRAN port
Definition at line 110 of file xran_fh_o_du.h.
#define XRAN_MAX_TDD_PERIODICITY (80) |
Max TDD pattern period
Definition at line 124 of file xran_fh_o_du.h.
#define XRAN_MAX_TRX_ANTENNA_ARRAY (1) |
Max number of TX and RX arrays per panel in O-RU
Definition at line 117 of file xran_fh_o_du.h.
#define XRAN_N_FE_BUF_LEN (40) |
Number of TTIs (slots)
Definition at line 109 of file xran_fh_o_du.h.
#define XRAN_N_MAX_BUFFER_SEGMENT XRAN_MAX_PKT_BURST |
Max number of segments per ms
Definition at line 133 of file xran_fh_o_du.h.
#define XRAN_NUM_OF_ANT_RADIO (XRAN_MAX_SECTOR_NR*XRAN_MAX_ANTENNA_NR) |
Max Number of Antennas supported for all CC on single XRAN port
Definition at line 127 of file xran_fh_o_du.h.
#define XRAN_NUM_OF_SLOT_IN_TDD_LOOP (80) |
MAX number of slot for TDD repetition
Definition at line 151 of file xran_fh_o_du.h.
#define XRAN_NUM_OF_SYMBOL_PER_SLOT (14) |
Number of symbols per slot
Definition at line 122 of file xran_fh_o_du.h.
#define XRAN_PORTS_NUM (1) |
number of XRAN ports (aka O-RU devices) supported
Definition at line 108 of file xran_fh_o_du.h.
#define XRAN_SLOT_TYPE_DL (1) |
DL slot
Definition at line 139 of file xran_fh_o_du.h.
#define XRAN_SLOT_TYPE_FDD (4) |
FDD slot
Definition at line 142 of file xran_fh_o_du.h.
#define XRAN_SLOT_TYPE_INVALID (0) |
invalid slot type
Definition at line 138 of file xran_fh_o_du.h.
#define XRAN_SLOT_TYPE_LAST (5) |
MAX slot
Definition at line 143 of file xran_fh_o_du.h.
#define XRAN_SLOT_TYPE_SP (3) |
Special slot
Definition at line 141 of file xran_fh_o_du.h.
#define XRAN_SLOT_TYPE_UL (2) |
UL slot
Definition at line 140 of file xran_fh_o_du.h.
#define XRAN_STATUS_FAIL (-1) |
Fail status value.
Definition at line 58 of file xran_fh_o_du.h.
#define XRAN_STATUS_FATAL (-5) |
A serious error has occurred. Recommended course of action is to shutdown and restart the component.
Definition at line 79 of file xran_fh_o_du.h.
#define XRAN_STATUS_INVALID_PACKET (-7) |
Recevied packet does not have correct format.
Definition at line 92 of file xran_fh_o_du.h.
#define XRAN_STATUS_INVALID_PARAM (-4) |
Invalid parameter has been passed in.
Definition at line 75 of file xran_fh_o_du.h.
#define XRAN_STATUS_RESOURCE (-3) |
The resource that has been requested is unavailable. Refer to relevant sections of the API for specifics on what the suggested course of action is.
Definition at line 68 of file xran_fh_o_du.h.
#define XRAN_STATUS_RETRY (-2) |
Retry status value.
Definition at line 63 of file xran_fh_o_du.h.
#define XRAN_STATUS_SUCCESS (0) |
Success status value.
Definition at line 54 of file xran_fh_o_du.h.
#define XRAN_STATUS_UNSUPPORTED (-6) |
The function is not supported, at least not with the specific parameters supplied. This may be because a particular capability is not supported by the current implementation.
Definition at line 85 of file xran_fh_o_du.h.
#define XRAN_STRICT_PARM_CHECK (1) |
enable parameter check for C-plane
Definition at line 135 of file xran_fh_o_du.h.
#define XRAN_SYMBOL_TYPE_DL (0) |
DL symbol
Definition at line 146 of file xran_fh_o_du.h.
#define XRAN_SYMBOL_TYPE_FDD (3) |
FDD symbol
Definition at line 149 of file xran_fh_o_du.h.
#define XRAN_SYMBOL_TYPE_GUARD (2) |
GUARD symbol
Definition at line 148 of file xran_fh_o_du.h.
#define XRAN_SYMBOL_TYPE_UL (1) |
UL symbol
Definition at line 147 of file xran_fh_o_du.h.
#define XranGetFrameNum | ( | tti, | |
SFNatSecStart, | |||
numSubFramePerSystemFrame, | |||
numSlotPerSubFrame | |||
) | ((((uint32_t)tti / ((uint32_t)numSubFramePerSystemFrame * (uint32_t)numSlotPerSubFrame)) + SFNatSecStart) & 0x3FF) |
Macro to calculate Frame number for given tti
Definition at line 102 of file xran_fh_o_du.h.
#define XranGetSlotNum | ( | tti, | |
numSlotPerSfn | |||
) | ((uint32_t)tti % ((uint32_t)numSlotPerSfn)) |
Macro to calculate Slot number
Definition at line 106 of file xran_fh_o_du.h.
#define XranGetSubFrameNum | ( | tti, | |
numSlotPerSubFrame, | |||
numSubFramePerSystemFrame | |||
) | (((uint32_t)tti/(uint32_t)numSlotPerSubFrame) % (uint32_t)numSubFramePerSystemFrame) |
Macro to calculate Subframe number for given tti
Definition at line 104 of file xran_fh_o_du.h.
#define XranGetSymNum | ( | symIdx, | |
numSymPerTti | |||
) | (((uint32_t)symIdx % (uint32_t)numSymPerTti)) |
Macro to calculate Symbol number for given slot from symbol index
Definition at line 100 of file xran_fh_o_du.h.
#define XranGetTtiNum | ( | symIdx, | |
numSymPerTti | |||
) | (((uint32_t)symIdx / (uint32_t)numSymPerTti)) |
Macro to calculate TTI number from symbol index used by timing thread
Definition at line 98 of file xran_fh_o_du.h.
typedef int16_t(* phy_decoder_poll_fn) (void) |
Callback functions to poll BBdev secoder
Definition at line 251 of file xran_fh_o_du.h.
typedef int16_t(* phy_encoder_poll_fn) (void) |
Callback functions to poll BBdev encoder
Definition at line 248 of file xran_fh_o_du.h.
typedef void(* xran_callback_sym_fn) (void *) |
callback function type for Symbol packet
Definition at line 239 of file xran_fh_o_du.h.
typedef void* xran_cc_handle_t |
CC instance handle pointer type
Definition at line 541 of file xran_fh_o_du.h.
typedef int(* xran_fh_tti_callback_fn) (void *) |
Callback function type for TTI event
Definition at line 242 of file xran_fh_o_du.h.
typedef int32_t xran_status_t |
Xran status return value
Definition at line 236 of file xran_fh_o_du.h.
typedef void(* xran_transport_callback_fn) (void *, xran_status_t) |
Callback function type packet arrival from transport layer (ETH or IP)
Definition at line 245 of file xran_fh_o_du.h.
enum callback_to_phy_id |
Callback function type for symbol packet enum
Definition at line 219 of file xran_fh_o_du.h.
enum xran_bbdev_init |
state of bbdev with xran
Enumerator | |
---|---|
XRAN_BBDEV_NOT_USED | BBDEV is disabled |
XRAN_BBDEV_MODE_HW_OFF | BBDEV is enabled for SW sim mode |
XRAN_BBDEV_MODE_HW_ON | BBDEV is enable for HW |
XRAN_BBDEV_MODE_MAX |
Definition at line 278 of file xran_fh_o_du.h.
type of beamforming
Enumerator | |
---|---|
XRAN_BEAM_ID_BASED | beam index based |
XRAN_BEAM_WEIGHT | beam forming weights |
XRAN_BEAM_ATTRIBUTE | beam index based |
Definition at line 270 of file xran_fh_o_du.h.
enum xran_category |
XRAN category enum
Enumerator | |
---|---|
XRAN_CATEGORY_A | |
XRAN_CATEGORY_B | |
XRAN_CATEGORY_MAX |
Definition at line 262 of file xran_fh_o_du.h.
Compression Method 6.3.3.13, Table 6-43
Enumerator | |
---|---|
XRAN_COMPMETHOD_NONE | |
XRAN_COMPMETHOD_BLKFLOAT | |
XRAN_COMPMETHOD_BLKSCALE | |
XRAN_COMPMETHOD_ULAW | |
XRAN_COMPMETHOD_MODULATION | |
XRAN_COMPMETHOD_MAX |
Definition at line 203 of file xran_fh_o_du.h.
enum xran_if_state |
Enumerator | |
---|---|
XRAN_INIT | |
XRAN_RUNNING | |
XRAN_STOPPED |
Definition at line 189 of file xran_fh_o_du.h.
XRAN-PHY interface byte order
Enumerator | |
---|---|
XRAN_NE_BE_BYTE_ORDER | Network byte order (Big endian), xRAN lib doesn't do swap |
XRAN_CPU_LE_BYTE_ORDER | CPU byte order (Little endian), xRAN lib does do swap |
Definition at line 471 of file xran_fh_o_du.h.
enum xran_input_i_q_order |
XRAN-PHY interface I and Q order
Enumerator | |
---|---|
XRAN_I_Q_ORDER | I , Q |
XRAN_Q_I_ORDER | Q , I |
Definition at line 477 of file xran_fh_o_du.h.
enum xran_vf_ports |
XRAN port enum
Enumerator | |
---|---|
XRAN_UP_VF | port type for U-plane |
XRAN_CP_VF | port type for C-plane |
XRAN_VF_MAX |
Definition at line 254 of file xran_fh_o_du.h.
Beamforming type, enumerated as "frequency", "time" or "hybrid" section 10.4.2 Weight-based dynamic beamforming
Enumerator | |
---|---|
XRAN_BF_T_FREQUENCY | |
XRAN_BF_T_TIME | |
XRAN_BF_T_HYBRID | |
XRAN_BF_T_MAX |
Definition at line 229 of file xran_fh_o_du.h.
enum XranFrameDuplexType |
Enumerator | |
---|---|
XRAN_FDD | |
XRAN_TDD |
Definition at line 184 of file xran_fh_o_du.h.
int32_t xran_5g_fronthault_config | ( | void * | pHandle, |
struct xran_buffer_list * | pSrcBuffer[XRAN_MAX_ANTENNA_NR][XRAN_N_FE_BUF_LEN], | ||
struct xran_buffer_list * | pSrcCpBuffer[XRAN_MAX_ANTENNA_NR][XRAN_N_FE_BUF_LEN], | ||
struct xran_buffer_list * | pDstBuffer[XRAN_MAX_ANTENNA_NR][XRAN_N_FE_BUF_LEN], | ||
struct xran_buffer_list * | pDstCpBuffer[XRAN_MAX_ANTENNA_NR][XRAN_N_FE_BUF_LEN], | ||
xran_transport_callback_fn | pCallback, | ||
void * | pCallbackTag | ||
) |
Function configures TX(DL) and RX(UL) output buffers and callback (UL only) for XRAN layer with given handle
pHandle | Pointer to XRAN layer handle for given CC |
pSrcBuffer | list of memory buffers to use to fetch IQs from PHY to XRAN layer (DL) |
pSrcCpBuffer | list of memory buffers to use to configure C-plane (DL) |
pDstBuffer | list of memory buffers to use to deliver IQs from XRAN layer to PHY (UL) |
pDstCpBuffer | list of memory buffers to use to configure C-plane (UL) |
xran_transport_callback_fn | pCallback Callback function to call with arrival of all packets for given CC for given symbol |
pCallbackTag | Parameters of Callback function |
Definition at line 2551 of file xran_main.c.
int32_t xran_5g_prach_req | ( | void * | pHandle, |
struct xran_buffer_list * | pDstBuffer[XRAN_MAX_ANTENNA_NR][XRAN_N_FE_BUF_LEN], | ||
xran_transport_callback_fn | pCallback, | ||
void * | pCallbackTag | ||
) |
Function configures PRACH output buffers and callback for XRAN layer with given handle
pHandle | Pointer to XRAN layer handle for given CC |
pDstBuffer | list of memory buffers to use to deliver PRACH IQs from xran layer to PHY |
xran_transport_callback_fn | pCallback Callback function to call with arrival of PRACH packets for given CC |
pCallbackTag | Parameters of Callback function |
Definition at line 2636 of file xran_main.c.
int32_t xran_5g_srs_req | ( | void * | pHandle, |
struct xran_buffer_list * | pDstBuffer[XRAN_MAX_ANT_ARRAY_ELM_NR][XRAN_N_FE_BUF_LEN], | ||
xran_transport_callback_fn | pCallback, | ||
void * | pCallbackTag | ||
) |
Function configures SRS output buffers and callback for XRAN layer with given handle
pHandle | Pointer to XRAN layer handle for given CC |
pDstBuffer | list of memory buffers to use to deliver SRS IQs from xran layer to PHY |
xran_transport_callback_fn | pCallback Callback function to call with arrival of SRS packets for given CC |
pCallbackTag | Parameters of Callback function |
Definition at line 2679 of file xran_main.c.
uint8_t* xran_add_hdr_offset | ( | uint8_t * | dst, |
int16_t | compMethod | ||
) |
Function calculates offset for ptr according to ORAN headers requared
dst | pointer to be addjusted compression method according to enum xran_compression_method |
Definition at line 2741 of file xran_main.c.
int32_t xran_bm_allocate_buffer | ( | void * | pHandle, |
uint32_t | nPoolIndex, | ||
void ** | ppData, | ||
void ** | ppCtrl | ||
) |
Function allocates buffer used between XRAN layer and PHY. In general case it's DPDK mbuf.
pHandle | Pointer to XRAN layer handle for given CC |
nPoolIndex | buffer pool identification |
ppData | Pointer to pointer where to store address of new buffer |
ppCtrl | Pointer to pointer where to store address of internal private control information |
Definition at line 2499 of file xran_main.c.
int32_t xran_bm_free_buffer | ( | void * | pHandle, |
void * | pData, | ||
void * | pCtrl | ||
) |
Function frees buffer used between XRAN layer and PHY. In general case it's DPDK mbuf
pHandle | Pointer to XRAN layer handle for given CC |
pData | Pointer to buffer |
pData | Pointer to internal private control information |
Definition at line 2541 of file xran_main.c.
int32_t xran_bm_init | ( | void * | pHandle, |
uint32_t * | pPoolIndex, | ||
uint32_t | nNumberOfBuffers, | ||
uint32_t | nBufferSize | ||
) |
Function allocates buffer memory (bm) used between XRAN layer and PHY. In general case it's DPDK mbuf. it uses Memory Management system to get memory chunk and define memory pool on top of it.
pHandle | Pointer to XRAN layer handle for given CC |
nPoolIndex | pointer to buffer pool identification to be returned |
nNumberOfBuffers | number of buffer to allocate in the pool |
nBufferSize | buffer size to allocate |
Definition at line 2454 of file xran_main.c.
int32_t xran_close | ( | void * | pHandle | ) |
Function closes XRAN layer with given handle
pHandle | Pointer to XRAN layer handle for given CC |
Definition at line 2863 of file xran_main.c.
int32_t xran_get_common_counters | ( | void * | pXranLayerHandle, |
struct xran_common_counters * | pStats | ||
) |
Function retrun XRAN layer common counters for given handle
pHandle | Pointer to XRAN layer handle for given CC |
pStats | Pointer to pointer of common counter structure |
Definition at line 3074 of file xran_main.c.
enum xran_if_state xran_get_if_state | ( | void | ) |
Function returns status of operation of FH layer
Definition at line 238 of file xran_main.c.
int32_t xran_get_slot_idx | ( | uint32_t * | nFrameIdx, |
uint32_t * | nSubframeIdx, | ||
uint32_t * | nSlotIdx, | ||
uint64_t * | nSecond | ||
) |
Function returns current TTI, Frame, Subframe, Slot Number as seen "Over air" base on PTP time
nFrameIdx | Pointer to Frame number [0-99] |
nSubframeIdx | Pointer to Subframe number [0-10] |
nSlotIdx | Pointer to Slot number [0-7] |
nSecond | Pointer to current UTC second |
Definition at line 2936 of file xran_main.c.
uint32_t xran_get_time_stats | ( | uint64_t * | total_time, |
uint64_t * | used_time, | ||
uint32_t * | core_used, | ||
uint32_t | clear | ||
) |
Function returns XRAN core utilization stats
total_time | (out) Pointer to variable to store Total time thread has been running |
used_time | (out) Pointer to variable to store Total time essential tasks have been running on the thread |
core_used | (out) Pointer to variable to store Core on which the XRAN thread is running |
clear | (in) If set to 1, then internal variables total_time and used_time are cleared |
Definition at line 2721 of file xran_main.c.
int32_t xran_init | ( | int | argc, |
char * | argv[], | ||
struct xran_fh_init * | p_xran_fh_init, | ||
char * | appName, | ||
void ** | pHandle | ||
) |
Initialize the XRAN Layer via DPDK.
argc | A non-negative value. If it is greater than 0, the array members for argv[0] through argv[argc] (non-inclusive) shall contain pointers to strings. |
argv | An array of strings. The contents of the array, as well as the strings which are pointed to by the array, may be modified by this function. |
Definition at line 2319 of file xran_main.c.
void* xran_malloc | ( | size_t | buf_len | ) |
Function allocates memory of given size from heap
buf_len | buffer size |
Definition at line 2736 of file xran_main.c.
int32_t xran_mm_destroy | ( | void * | pHandle | ) |
Function destroys Memory Management (MM) layer of XRAN library
pHandle | Pointer to XRAN layer handle for given CC |
Definition at line 2877 of file xran_main.c.
int32_t xran_mm_init | ( | void * | pHandle, |
uint64_t | nMemorySize, | ||
uint32_t | nMemorySegmentSize | ||
) |
Function initialize Memory Management subsystem (mm) in order to handle memory buffers between XRAN layer and PHY.
pHandle | Pointer to XRAN layer handle for given CC |
nMemorySize | memory size of all segments |
nMemorySegmentSize | size of memory per segment |
Definition at line 2447 of file xran_main.c.
int32_t xran_open | ( | void * | pHandle, |
struct xran_fh_config * | pConf | ||
) |
Function opens XRAN layer with given handle
pHandle | Pointer to XRAN layer handle for given CC |
pointer | to struct xran_fh_config pConf Pointer to XRAN configuration structure with specific settings to use |
Definition at line 2756 of file xran_main.c.
int32_t xran_reg_physide_cb | ( | void * | pHandle, |
xran_fh_tti_callback_fn | Cb, | ||
void * | cbParam, | ||
int | skipTtiNum, | ||
enum | callback_to_phy_id | ||
) |
Function registers callback to XRAN layer. Function support callbacks align to OTA time. TTI even, half of slot, full slot with respect to PTP time.
pHandle | Pointer to XRAN layer handle for given CC |
Cb | pointer to callback function |
cbParam | pointer to Callback Function parameters |
skipTtiNum | number of calls to be skipped before first call |
callback_to_phy_id | call back time identification (see enum callback_to_phy_id) |
Definition at line 2900 of file xran_main.c.
int32_t xran_reg_sym_cb | ( | void * | pHandle, |
xran_callback_sym_fn | symCb, | ||
void * | symCbParam, | ||
uint8_t | symb, | ||
uint8_t | ant | ||
) |
Function registers callback to XRAN layer. Function support callbacks aligned on packet arrival.
pHandle | Pointer to XRAN layer handle for given CC |
symCb | pointer to callback function |
symCb | pointer to Callback Function parameters |
symb | symbol to be register for |
ant | Antenna number to trigger callback for packet arrival |
Definition at line 2888 of file xran_main.c.
int32_t xran_sector_get_instances | ( | void * | pHandle, |
uint16_t | nNumInstances, | ||
xran_cc_handle_t * | pSectorInstanceHandles | ||
) |
Function returns handles for number of sectors supported by XRAN layer. Currently function supports one handle XRAN layer where it supports only one CC
pHandle | Pointer to XRAN layer handle |
nNumInstances | total number of instances of CC |
pSectorInstanceHandles | Pointer to xran_cc_handle_t where to store Handle pointer |
Definition at line 2408 of file xran_main.c.
int32_t xran_start | ( | void * | pHandle | ) |
Function starts XRAN layer with given handle
pHandle | Pointer to XRAN layer handle for given CC |
Definition at line 2841 of file xran_main.c.
int32_t xran_stop | ( | void * | pHandle | ) |
Function stops XRAN layer with given handle
pHandle | Pointer to XRAN layer handle for given CC |
Definition at line 2852 of file xran_main.c.