Front Haul Interface Library update to third seed code contribution
[o-du/phy.git] / fhi_lib / app / src / config.h
index c223b0b..6113134 100644 (file)
@@ -16,7 +16,6 @@
 *
 *******************************************************************************/
 
-
 /**
  * @brief
  * @file
 typedef struct _RuntimeConfig
 {
     uint8_t appMode;      /**< Application mode: lls-CU or RU  */
-    uint8_t xranMode;     /**< xran mode: Categoty A | Category B */
+    uint8_t xranCat;     /**< xran mode: Categoty A | Category B */
     uint8_t numCC;        /**< Number of CC per ports supported by RU */
     uint8_t numAxc;       /**< Number of Antenna Carriers per CC */
+    uint8_t numUlAxc;     /**< Number of Antenna Carriers per CC for UL (Cat B) */
+    uint32_t antElmTRx;   /**< Number of antenna elements for TX and RX */
+    uint32_t muMimoUEs;   /**< Number of UEs (with 1 RX ant)/beams */
+
+    uint32_t DlLayersPerUe; /**< Number of DL layer per UE */
+    uint32_t UlLayersPerUe; /**< Number of UL layer per UE */
+
     uint32_t ttiPeriod;   /**< TTI period */
     uint32_t testVect;    /**< Test Signal to send */
     struct ether_addr o_du_addr; /**<  lls-CU Ethernet Mac Address */
     struct ether_addr o_ru_addr; /**<  RU Ethernet Mac Address */
     struct ether_addr tmp_addr; /**<  Temp Ethernet Mac Address */
 
+    uint32_t instance_id; /**<  Instance ID of application */
+    uint32_t io_core; /**<  Core used for IO */
+    uint64_t system_core; /* <system core ID> */
+    uint64_t pkt_proc_core;
+    uint64_t pkt_aux_core;
+    uint64_t timing_core;
+    
     uint32_t mtu; /**< maximum transmission unit (MTU) is the size of the largest protocol data unit (PDU) that can be communicated in a single
                        xRAN network layer transaction. supported 1500 bytes and 9600 bytes (Jumbo Frame) */
     int numSlots;  /**< number of slots in IQ vector */
-    char ant_file[XRAN_MAX_SECTOR_NR*XRAN_MAX_ANTENNA_NR][512] /**<  file to use for test vector */ ;
-    char prach_file[XRAN_MAX_SECTOR_NR*XRAN_MAX_ANTENNA_NR][512] /**<  file to use for test vector */ ;
+    char ant_file[XRAN_MAX_SECTOR_NR*XRAN_MAX_ANTENNA_NR][512]; /**<  file to use for test vector */
+    char prach_file[XRAN_MAX_SECTOR_NR*XRAN_MAX_ANTENNA_NR][512]; /**<  file to use for test vector */
+
+    char dl_bfw_file [XRAN_MAX_SECTOR_NR*XRAN_MAX_ANTENNA_NR][512]; /**< file with beamforming weights for DL streams */
+    char ul_bfw_file [XRAN_MAX_SECTOR_NR*XRAN_MAX_ANTENNA_NR][512]; /**< file with beamforming weights for UL streams */
+
+    char ul_srs_file [XRAN_MAX_SECTOR_NR*XRAN_MAX_ANT_ARRAY_ELM_NR][512]; /**< file with SRS content for UL antenna elements */
 
     /* prach config */
     uint8_t enablePrach; /**<  enable PRACH */
@@ -58,6 +76,14 @@ typedef struct _RuntimeConfig
     uint8_t prachConfigIndex; /**< TS36.211 - Table 5.7.1-2 : PRACH Configuration Index */
     uint8_t iqswap; /**< do swap of IQ before send to ETH */
     uint8_t nebyteorderswap; /**< do swap of byte order from host byte order to network byte order. ETH */
+    uint8_t compression;     /**< enable use case with compression */
+
+    uint16_t totalBfWeights; /**< The total number of beamforming weights on RU */
+
+    uint8_t enableSrs; /**< enable SRS (valid for Cat B only) */
+    uint16_t srsSymMask; /**< SRS symbol mask [014] within S/U slot [0-13] def is  13 */
+
+    uint16_t maxFrameId; /**< max value of frame id */
 
     uint16_t Tadv_cp_dl;
     uint16_t T2a_min_cp_dl;
@@ -85,6 +111,8 @@ typedef struct _RuntimeConfig
     int32_t debugStopCount;
     int32_t bbdevMode;
     int32_t DynamicSectionEna;
+    int32_t GPS_Alpha;
+    int32_t GPS_Beta;
 
     uint8_t  mu_number;       /**< Mu numner as per 3GPP */
     uint32_t nDLAbsFrePointA; /**< Abs Freq Point A of the Carrier Center Frequency for in KHz Value: 450000->52600000 */
@@ -98,6 +126,8 @@ typedef struct _RuntimeConfig
     uint8_t nFrameDuplexType;
     uint8_t nTddPeriod;
     struct xran_slot_config sSlotConfig[XRAN_MAX_TDD_PERIODICITY];
+    struct xran_prb_map PrbMapDl;
+    struct xran_prb_map PrbMapUl;
 } RuntimeConfig;
 
 /**