X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?p=o-du%2Fphy.git;a=blobdiff_plain;f=fhi_lib%2Fapp%2Fsrc%2Fconfig.h;h=61131344d0573df85ddc19c45b5497ac914d87d0;hp=d9cae0956ff308f5ca38a8976e8e5bf57845da82;hb=2fbf70096f64af622da983e88c5a64e90ad9bdbd;hpb=9e108bb6d4caf2f6d4e920c640882fa49c15684c diff --git a/fhi_lib/app/src/config.h b/fhi_lib/app/src/config.h index d9cae09..6113134 100644 --- a/fhi_lib/app/src/config.h +++ b/fhi_lib/app/src/config.h @@ -1,140 +1,140 @@ -/****************************************************************************** -* -* Copyright (c) 2019 Intel. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -* -*******************************************************************************/ - -/** - * @brief - * @file - * @ingroup - * @author Intel Corporation - **/ - -#ifndef _SAMPLEAPP__CONFIG_H_ -#define _SAMPLEAPP__CONFIG_H_ - -#include -#include -#include "xran_fh_o_du.h" - -/** Run time configuration of application */ -typedef struct _RuntimeConfig -{ - uint8_t appMode; /**< Application mode: lls-CU or RU */ - 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; /* */ - 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 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 */ - uint8_t prachOffset; /**< Sets the PRACH position in frequency / subcarrier position, n_PRBoffset^RA and is expressed as a physical resource block number. - Set by SIB2, prach-FreqOffset in E-UTRA. */ - - 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; - uint16_t T2a_max_cp_dl; - uint16_t T2a_min_cp_ul; - uint16_t T2a_max_cp_ul; - uint16_t T2a_min_up; - uint16_t T2a_max_up; - uint16_t Ta3_min; - uint16_t Ta3_max; - uint16_t T1a_min_cp_dl; - uint16_t T1a_max_cp_dl; - uint16_t T1a_min_cp_ul; - uint16_t T1a_max_cp_ul; - uint16_t T1a_min_up; - uint16_t T1a_max_up; - uint16_t Ta4_min; - uint16_t Ta4_max; - - uint8_t enableCP; /**< enable C-plane */ - uint8_t cp_vlan_tag; /**< C-plane vlan tag */ - uint8_t up_vlan_tag; /**< U-plane vlan tag */ - - int32_t debugStop; - 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 */ - uint32_t nULAbsFrePointA; /**< Abs Freq Point A of the Carrier Center Frequency for in KHz Value: 450000->52600000 */ - uint32_t nDLBandwidth; /**< Carrier bandwidth for in MHz. Value: 5->400 */ - uint32_t nULBandwidth; /**< Carrier bandwidth for in MHz. Value: 5->400 */ - uint32_t nDLFftSize; /**< DL FFT size */ - uint32_t nULFftSize; /**< UL FFT size */ - - - 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; - -/** - * Parse application configuration file. - * - * @param filename The name of the configuration file to be parsed. - * @param config The configuration structure to be filled with parsed data. */ -int parseConfigFile(char *filename, RuntimeConfig *config); - -#endif /* _SAMPLEAPP__CONFIG_H_ */ +/****************************************************************************** +* +* Copyright (c) 2019 Intel. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*******************************************************************************/ + +/** + * @brief + * @file + * @ingroup + * @author Intel Corporation + **/ + +#ifndef _SAMPLEAPP__CONFIG_H_ +#define _SAMPLEAPP__CONFIG_H_ + +#include +#include +#include "xran_fh_o_du.h" + +/** Run time configuration of application */ +typedef struct _RuntimeConfig +{ + uint8_t appMode; /**< Application mode: lls-CU or RU */ + 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; /* */ + 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 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 */ + uint8_t prachOffset; /**< Sets the PRACH position in frequency / subcarrier position, n_PRBoffset^RA and is expressed as a physical resource block number. + Set by SIB2, prach-FreqOffset in E-UTRA. */ + + 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; + uint16_t T2a_max_cp_dl; + uint16_t T2a_min_cp_ul; + uint16_t T2a_max_cp_ul; + uint16_t T2a_min_up; + uint16_t T2a_max_up; + uint16_t Ta3_min; + uint16_t Ta3_max; + uint16_t T1a_min_cp_dl; + uint16_t T1a_max_cp_dl; + uint16_t T1a_min_cp_ul; + uint16_t T1a_max_cp_ul; + uint16_t T1a_min_up; + uint16_t T1a_max_up; + uint16_t Ta4_min; + uint16_t Ta4_max; + + uint8_t enableCP; /**< enable C-plane */ + uint8_t cp_vlan_tag; /**< C-plane vlan tag */ + uint8_t up_vlan_tag; /**< U-plane vlan tag */ + + int32_t debugStop; + 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 */ + uint32_t nULAbsFrePointA; /**< Abs Freq Point A of the Carrier Center Frequency for in KHz Value: 450000->52600000 */ + uint32_t nDLBandwidth; /**< Carrier bandwidth for in MHz. Value: 5->400 */ + uint32_t nULBandwidth; /**< Carrier bandwidth for in MHz. Value: 5->400 */ + uint32_t nDLFftSize; /**< DL FFT size */ + uint32_t nULFftSize; /**< UL FFT size */ + + + 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; + +/** + * Parse application configuration file. + * + * @param filename The name of the configuration file to be parsed. + * @param config The configuration structure to be filled with parsed data. */ +int parseConfigFile(char *filename, RuntimeConfig *config); + +#endif /* _SAMPLEAPP__CONFIG_H_ */