X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?p=o-du%2Fphy.git;a=blobdiff_plain;f=fapi_5g%2Finclude%2Ffapi_interface.h;fp=fapi_5g%2Finclude%2Ffapi_interface.h;h=2a7a9d010da63e33e965df7bdfc99b4581eb1140;hp=5946b465e74cba918d5f41de53a1eb70065d6e1f;hb=70d9d920dd4e575f085f1f1a9050fefd1c10e127;hpb=331df2273a6667941167c9bcc141a517369bdf43 diff --git a/fapi_5g/include/fapi_interface.h b/fapi_5g/include/fapi_interface.h index 5946b46..2a7a9d0 100644 --- a/fapi_5g/include/fapi_interface.h +++ b/fapi_5g/include/fapi_interface.h @@ -33,21 +33,8 @@ extern "C" { #define FAPI_STOP_REQUEST 0x05 #define FAPI_STOP_INDICATION 0x06 #define FAPI_ERROR_INDICATION 0x07 -// Reserved 0x08 - 0x7f -#define FAPI_VENDOR_EXT_SHUTDOWN_REQUEST 0x08 -#define FAPI_VENDOR_MESSAGE 0x09 -#ifdef DEBUG_MODE -#define FAPI_VENDOR_EXT_DL_IQ_SAMPLES 0x0A -#define FAPI_VENDOR_EXT_UL_IQ_SAMPLES 0x0B -#endif -// WLS operation -#define FAPI_MSG_HEADER_IND 0x2A - -// WLS operation with PDSCH Payload -#define FAPI_MSG_PHY_ZBC_BLOCK_REQ 0x2B - -// WLS operation with PUSCH Payload -#define FAPI_MSG_PHY_ZBC_BLOCK_IND 0x2C +// Reserved 0x08 - 0x0F and 0x02 - 0x7f +// 0x01 - 0x1F is used in vendor extension #define FAPI_DL_TTI_REQUEST 0x80 #define FAPI_UL_TTI_REQUEST 0x81 @@ -60,10 +47,6 @@ extern "C" { #define FAPI_SRS_INDICATION 0x88 #define FAPI_RACH_INDICATION 0x89 // Reserved 0x8a -0xff -#ifdef DEBUG_MODE -#define FAPI_VENDOR_EXT_START_RESPONSE 0x8A -#endif -#define FAPI_VENDOR_EXT_SHUTDOWN_RESPONSE 0x8B // Tags per 5G FAPI // Cell Parameters @@ -192,17 +175,6 @@ extern "C" { #define FAPI_MSG_UL_DCI_ERR 0x7 #define FAPI_MSG_TX_ERR 0x8 -// TODO : Work out what the correct maximums should be// Needs Review for 5G -#if 0 -// Number of UL/DL configurations, I, as defined by 36.212 section 5.3.3.1.4 -// todo : work out what the max is -#define FAPI_MAX_UL_DL_CONFIGURATIONS 4 -#define FAPI_MAX_NUM_PHYSICAL_ANTENNAS 4 -#define FAPI_MAX_NUM_SCHEDULED_UES 8 -#define FAPI_MAX_NUM_SUBBANDS 8 -#define FAPI_MAX_ANTENNA_PORT_COUNT 2 -#endif - // 5G FAPI Definitions #define FAPI_NUMEROLOGIES 5 #define FAPI_MAX_NUM_UNUSED_ROOT_SEQUENCES 63 // 38.331 page 383 @@ -252,11 +224,15 @@ extern "C" { #define FAPI_MAX_NUMBER_OF_GROUPS_PER_TTI 16 // FlexRAN API Table 33 #define FAPI_MAX_NUMBER_UL_PDUS_PER_TTI 328 // (MAX_NUM_PUSCH+MAX_NUM_PUCCH+MAX_NUM_SRS+MAX_NUM_PRACH_DET) #define FAPI_MAX_NUMBER_DCI_PDUS_PER_TTI 32 // Based on MAX_NUM_PDCCH -#define FAPI_MAX_NUMBER_OF_TLVS_PER_PDU 2 // one for each codeword +#define FAPI_MAX_NUMBER_OF_TLVS_PER_PDU 1 // one for each codeword #define FAPI_MAX_NUMBER_TX_PDUS_PER_TTI 129 // Same as FAPI_MAX_NUMBER_DL_PDUS_PER_TTI // Based on 38.214 5.1.3.4, the TBS is 1376264 bits and divided by 8 and // aligned to 64 bytes #define FAPI_MAX_PDU_LENGTH 172096 +#define FAPI_TX_DATA_PAYLOAD 0x00 +#define FAPI_TX_DATA_PTR_TO_PAYLOAD_32 0x01 +#define FAPI_TX_DATA_OFFSET_TO_PAYLOAD 0x02 +#define FAPI_TX_DATA_PTR_TO_PAYLOAD_64 0x03 #define FAPI_MAX_NUMBER_OF_PDUS_PER_TTI 129 // Same as FAPI_MAX_NUMBER_DL_PDUS_PER_TTI #define FAPI_MAX_NUMBER_OF_ULSCH_PDUS_PER_SLOT 64 // NUM_PUSCH_CHAN*FAPI_MAX_NUMBER_OF_CODEWORDS_PER_PDU @@ -278,45 +254,31 @@ extern "C" { #define FAPI_MAX_NUM_TLVS_SHUTDOWN 1 // Based on Timer Mode requirement. #define FAPI_MAX_UCI_BIT_BYTE_LEN 256 -#ifdef DEBUG_MODE -#define FAPI_MAX_IQ_SAMPLE_FILE_SIZE 576 -#define FAPI_MAX_IQ_SAMPLE_DL_PORTS 8 -#define FAPI_MAX_IQ_SAMPLE_UL_PORTS 2 -#define FAPI_MAX_IQ_SAMPLE_UL_VIRTUAL_PORTS 4 -#define FAPI_MAX_IQ_SAMPLE_UL_ANTENNA 32 -#define FAPI_MAX_IQ_SAMPLE_BUFFER_SIZE 4096 -#endif - -#define FAPI_PRACH_PDU_TYPE 0 -#define FAPI_PUSCH_PDU_TYPE 1 -#define FAPI_PUCCH_PDU_TYPE 2 -#define FAPI_SRS_PDU_TYPE 3 - -#define FAPI_PDCCH_PDU_TYPE 0 -#define FAPI_PDSCH_PDU_TYPE 1 -#define FAPI_PBCH_PDU_TYPE 2 -#define FAPI_CSIRS_PDU_TYPE 3 + enum ul_tti_pdu_type_e { + FAPI_PRACH_PDU_TYPE = 0, + FAPI_PUSCH_PDU_TYPE, + FAPI_PUCCH_PDU_TYPE, + FAPI_SRS_PDU_TYPE, + FAPI_UL_TTI_PDU_TYPE_MAX + }; + + enum dl_tti_pdu_type_e { + FAPI_PDCCH_PDU_TYPE = 0, + FAPI_PDSCH_PDU_TYPE, + FAPI_CSIRS_PDU_TYPE, + FAPI_PBCH_PDU_TYPE, + FAPI_DL_TTI_PDU_TYPE_MAX + }; //------------------------------------------------------------------------------------------------------------ -// Linked list header prent at the top of all messages - typedef struct _fapi_api_queue_elem { - struct _fapi_api_queue_elem *p_next; - // p_tx_data_elm_list used for TX_DATA.request processing - struct _fapi_api_queue_elem *p_tx_data_elm_list; - uint8_t msg_type; - uint8_t num_message_in_block; - uint32_t msg_len; - uint32_t align_offset; - uint64_t time_stamp; - } fapi_api_queue_elem_t, *p_fapi_api_queue_elem_t; - // Updated per 5G FAPI typedef struct { uint8_t num_msg; // Can be used for Phy Id or Carrier Id 5G FAPI Table 3-2 uint8_t handle; uint8_t pad[2]; - } fapi_msg_header_t, *p_fapi_msg_header_t; + } fapi_msg_header_t, + *p_fapi_msg_header_t; // Updated per 5G FAPI typedef struct { @@ -369,37 +331,6 @@ extern "C" { uint16_t rsv; // To be 32-bit aligned, if FAPI_NUMEROLOGIES changes to some other value than 5 please ensure 32 bit alignment } fapi_config_num_tlv_t; - typedef struct { - uint16_t hopping_id; - uint8_t carrier_aggregation_level; - uint8_t group_hop_flag; - uint8_t sequence_hop_flag; - // uint8_t nDMRS_type_A_pos; - uint8_t pad[3]; - } fapi_config_req_vendor_msg_t; - - typedef struct { - uint16_t sfn; - uint16_t slot; - uint32_t mode; -#ifdef DEBUG_MODE - uint32_t count; - uint32_t period; -#endif - } fapi_start_req_vendor_msg_t; - - typedef struct { - uint16_t sfn; - uint16_t slot; - } fapi_stop_req_vendor_msg_t; - - typedef struct { - fapi_msg_t header; - fapi_config_req_vendor_msg_t config_req_vendor; - fapi_start_req_vendor_msg_t start_req_vendor; - fapi_stop_req_vendor_msg_t stop_req_vendor; - } fapi_vendor_msg_t; - // Updated per 5G FAPI typedef struct { fapi_msg_t header; // For PARAM.req message length in fapi_msg_t is zero per 5G FAPI 3.3.1.1 @@ -731,7 +662,7 @@ extern "C" { uint8_t aggregationLevel; fapi_precoding_bmform_t pc_and_bform; uint8_t beta_pdcch_1_0; - uint8_t powerControlOfssetSS; + uint8_t powerControlOffsetSS; uint16_t payloadSizeBits; uint8_t payload[FAPI_DCI_PAYLOAD_BYTE_LEN]; // 5G FAPI Table 3-37 } fapi_dl_dci_t; @@ -748,10 +679,10 @@ extern "C" { uint8_t cceRegMappingType; uint8_t regBundleSize; uint8_t interleaverSize; - uint8_t coreSetSize; + uint8_t coreSetType; uint16_t shiftIndex; uint8_t precoderGranularity; - uint8_t coreSetType; + uint8_t pad; uint16_t numDlDci; // 5G FAPI Table 3-36 fapi_dl_dci_t dlDci[FAPI_MAX_NUMBER_DL_DCI]; } fapi_dl_pdcch_pdu_t; @@ -1129,9 +1060,9 @@ extern "C" { // Updated per 5G FAPI typedef struct { - uint16_t pdu_length; + uint32_t pdu_length; uint16_t pdu_index; - uint32_t num_tlvs; + uint16_t num_tlvs; fapi_uint8_ptr_tlv_t tlvs[FAPI_MAX_NUMBER_OF_TLVS_PER_PDU]; // 5G FAPI Table 3-58 Subset } fapi_tx_pdu_desc_t; @@ -1283,7 +1214,6 @@ extern "C" { uint16_t timingAdvance; uint16_t rssi; // 5G FAPI Table 3-65 uint8_t pad1[2]; - uint8_t uciBits[FAPI_MAX_UCI_BIT_BYTE_LEN]; fapi_sr_f0f1_info_t srInfo; // This is included if indicated by the pduBitmap fapi_harq_f0f1_info_t harqInfo; // This is included if indicated by the pduBitmap } fapi_uci_o_pucch_f0f1_t; @@ -1368,64 +1298,6 @@ extern "C" { fapi_rach_pdu_t rachPdu[FAPI_MAX_NUMBER_RACH_PDUS_PER_SLOT]; // 5G FAPI Table 3-74 } fapi_rach_indication_t; -//Vendor extension messages - typedef struct { - fapi_msg_t header; - uint16_t sfn; - uint16_t slot; - uint32_t test_type; - } fapi_vendor_ext_shutdown_req_t; - - typedef struct { - fapi_msg_t header; - uint16_t sfn; - uint16_t slot; - uint32_t nStatus; - } fapi_vendor_ext_shutdown_res_t; - -#ifdef DEBUG_MODE - typedef struct { - uint32_t carrNum; - uint32_t numSubframes; - uint32_t testUeMode; - uint32_t timerModeFreqDomain; - uint32_t phaseCompensationEnable; - uint32_t startFrameNum; - uint32_t startSlotNum; - char filename_in_ul_iq[FAPI_MAX_IQ_SAMPLE_UL_VIRTUAL_PORTS] - [FAPI_MAX_IQ_SAMPLE_FILE_SIZE]; - char filename_in_ul_urllc[FAPI_MAX_IQ_SAMPLE_UL_VIRTUAL_PORTS] - [FAPI_MAX_IQ_SAMPLE_FILE_SIZE]; - char filename_in_prach_iq[FAPI_MAX_IQ_SAMPLE_UL_VIRTUAL_PORTS] - [FAPI_MAX_IQ_SAMPLE_FILE_SIZE]; - char filename_in_srs_iq[FAPI_MAX_IQ_SAMPLE_UL_ANTENNA] - [FAPI_MAX_IQ_SAMPLE_FILE_SIZE]; - char filename_out_dl_iq[FAPI_MAX_IQ_SAMPLE_FILE_SIZE]; - char filename_out_dl_iq_urllc[FAPI_MAX_IQ_SAMPLE_FILE_SIZE]; - char filename_out_dl_beam[FAPI_MAX_IQ_SAMPLE_DL_PORTS] - [FAPI_MAX_IQ_SAMPLE_FILE_SIZE]; - char filename_out_ul_beam[FAPI_MAX_IQ_SAMPLE_UL_VIRTUAL_PORTS] - [FAPI_MAX_IQ_SAMPLE_FILE_SIZE]; - uint8_t buffer[FAPI_MAX_IQ_SAMPLE_BUFFER_SIZE]; - } fapi_vendor_ext_iq_samples_info_t; - - typedef struct { - fapi_msg_t header; - fapi_vendor_ext_iq_samples_info_t iq_samples_info; - } fapi_vendor_ext_iq_samples_req_t; - - typedef struct { - fapi_msg_t header; - } fapi_vendor_ext_dl_iq_samples_res_t; - - typedef struct { - fapi_msg_t header; - } fapi_vendor_ext_ul_iq_samples_res_t; - - typedef struct { - fapi_msg_t header; - } fapi_vendor_ext_start_response_t; -#endif //------------------------------------------------------------------------------ #if defined(__cplusplus)