100 m_pRUConfig = &m_xranConf->
ru_conf;
105 m_xranConf->
log_level = get_input_parameter<uint32_t>(
"loglevel");
106 m_pPRACHConfig->
nPrachConfIdx = get_input_parameter<uint8_t>(
"PrachConfIdx");
107 m_pPRACHConfig->
nPrachFreqStart = get_input_parameter<uint16_t>(
"PrachFreqStart");
108 m_pPRACHConfig->
nPrachFreqOffset = get_input_parameter<int32_t>(
"PrachFreqOffset");
109 m_pPRACHConfig->
nPrachSubcSpacing = get_input_parameter<uint8_t>(
"PrachSubcSpacing");
111 m_pRUConfig->
iqWidth = get_input_parameter<uint8_t>(
"iqWidth");
112 m_pRUConfig->
compMeth = get_input_parameter<uint8_t>(
"compMeth");
113 m_pRUConfig->
fftSize = get_input_parameter<uint8_t>(
"fftSize");
115 m_frameId = get_input_parameter<uint8_t>(
"frameId");
116 m_subframeId = get_input_parameter<uint8_t>(
"subframeId");
117 m_slotId = get_input_parameter<uint8_t>(
"slotId");
118 m_beamId = get_input_parameter<uint16_t>(
"beamId");
119 m_ccId = get_input_parameter<uint8_t>(
"ccId");
120 m_antId = get_input_parameter<uint8_t>(
"antId");
123 m_startSymId = get_reference_parameter<uint8_t>(
"startSymId");
124 m_x = get_reference_parameter<uint8_t>(
"x_value");
126 m_filterIdx = get_reference_parameter<uint8_t>(
"filterIdx");
127 m_startPrbc = get_reference_parameter<uint16_t>(
"startPrbc");
128 m_numPrbc = get_reference_parameter<uint8_t>(
"numPrbc");
129 m_timeOffset = get_reference_parameter<uint16_t>(
"timeOffset");
130 m_freqOffset = get_reference_parameter<uint32_t>(
"freqOffset");
131 m_nrofPrachInSlot = get_reference_parameter<uint8_t>(
"nrofPrachInSlot");
132 m_m_params_timeOffset = get_reference_parameter<uint16_t>(
"m_params_timeOffset");
133 m_id = get_reference_parameter<uint16_t>(
"id");
134 std::vector<uint8_t> y_vec = get_reference_parameter<std::vector<uint8_t>>(
"y_value");
139 m_numSymbol = get_reference_parameter<uint8_t>(
"numSymbol");
140 m_occassionsInPrachSlot = get_reference_parameter<uint8_t>(
"occassionsInPrachSlot");
142 std::vector<uint8_t> index_vec = get_reference_parameter<std::vector<uint8_t>>(
"isPRACHslot");
143 m_SlotNrNum = get_reference_parameter<uint8_t>(
"SlotNrNum");
148 m_isPRACHslot[index_vec[i]]=1;
152 m_prach_start_symbol = get_reference_parameter<int>(
"prach_start_symbol");
153 m_prach_last_symbol = get_reference_parameter<int>(
"prach_last_symbol");
157 ASSERT_NE(m_pSectGenInfo,
nullptr);
161 m_pTestBuffer = (
struct rte_mbuf*)rte_pktmbuf_alloc(
_eth_mbuf_pool);
162 ASSERT_FALSE(m_pTestBuffer == NULL);
168 if(m_pTestBuffer != NULL)
169 rte_pktmbuf_free(m_pTestBuffer);
181 void *pHandle = NULL;
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)
uint8_t m_occassionsInPrachSlot
struct xran_prach_config * m_pPRACHConfig
int prach_last_symbol[XRAN_MAX_SECTOR_NR]
#define XRAN_STATUS_SUCCESS
int32_t xran_open(void *pHandle, struct xran_fh_config *pConf)
static unsigned get_number_of_cases(const std::string &type)
uint8_t y[XRAN_PRACH_CANDIDATE_Y]
struct xran_ru_config * m_pRUConfig
uint8_t m_isPRACHslot[XRAN_PRACH_CANDIDATE_SLOT]
#define XRAN_MAX_SECTOR_NR
struct xran_section_info info
struct xran_recv_packet_info m_pktInfo
TEST_P(PrachCheck, PacketGen)
int prach_start_symbol[XRAN_MAX_SECTOR_NR]
const std::string module_name
struct xran_fh_config fh_cfg
uint8_t occassionsInPrachSlot
int xran_init_prach(struct xran_fh_config *pConf, struct xran_device_ctx *p_xran_dev_ctx)
This file has all definitions for the Ethernet Data Interface Layer.
INSTANTIATE_TEST_CASE_P(UnitTest, PrachCheck, testing::ValuesIn(get_sequence(PrachCheck::get_number_of_cases("prach_functional"))))
#define XRAN_PRACH_CANDIDATE_SLOT
uint8_t m_y[XRAN_PRACH_CANDIDATE_Y]
struct xran_frame_config frame_conf
void init_test(const std::string &type)
Defines section in the conf.json that is used to load parameters from.
struct xran_fh_config * m_xranConf
struct rte_mempool * _eth_mbuf_pool
struct xran_cp_header_params hdr
struct xran_prach_config prach_conf
uint16_t m_m_params_timeOffset
#define XRAN_PRACH_CANDIDATE_Y
uint8_t m_nrofPrachInSlot
XRAN layer common functionality for both lls-CU and RU as well as C-plane and U-plane.
struct xran_ru_config ru_conf
struct xran_section_gen_info * m_pSectGenInfo
uint8_t isPRACHslot[XRAN_PRACH_CANDIDATE_SLOT]
This file provides public interface to xRAN Front Haul layer implementation as defined in the ORAN-WG...
struct xran_prach_cp_config PrachCPConfig
struct xran_section_gen_info * sections
struct rte_mbuf * m_pTestBuffer
struct xran_device_ctx m_xran_dev_ctx
struct xran_prach_cp_config * m_pPrachCPConfig
struct xran_cp_gen_params m_params
std::vector< unsigned > get_sequence(const unsigned number)
For a given number return sequence of number from 0 to number - 1.
This file provides the definitions for Control Plane Messages APIs.
struct xran_cp_gen_params m_result
uint8_t nPrachSubcSpacing
This file provides the definitions for Transport layer (eCPRI) API.