Update to odulow per maintenance bronze
[o-du/phy.git] / fapi_5g / include / fapi_interface.h
index 5946b46..2a7a9d0 100644 (file)
@@ -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)