/**********************************************************************************************************
*Author: HeJian
*Date: 2019-08-23
***********************************************************************************************************/
/ ************ Basic Type *************/
typedef unsigned short NR_COnTrolResOurceSetZerO; /* CONTROLRESOURCESETZERO */
typedef unsigned short NR_SEaRchSpaCeZerO; /* SEARCHSPACEZERO */
typedef short NR_Q_RXLEvMin; /* Q-RXLEVMIN */ /* FFS range */
typedef short NR_Q_QUaLMin; /* Q-QUALMIN */ /* FFS range */
typedef unsigned short NR_MCC_MNC_DIgIt; /* MCC_MNC_Digit */
typedef unsigned short NR_FReQBanDIndIcatorNR; /* FREQBANDINDICATORNR */
typedef unsigned short NR_ADdItionalSpeCtrumEmiSsion; /* ADDITIONALSPECTRUMEMISSION */
typedef short NR_P_MAx; /* P-MAX */
typedef char NullType; /* Nulltype*/
typedef unsigned short NR_COnTrolResOurceSetId; /* CONTROL-RESOURCE-SET-ID */
typedef unsigned short NR_TCI_STaTeId; /* TCI_StateId */
typedef unsigned short NR_SEaRchSpaCeId; /* SearchSpaceId */
typedef unsigned int NR_ARFCN_VAlUeNR; /* ARFCN_ValueNR */
typedef unsigned short NR_UAC_BArRingInfOSetIndEx; /* UAC_BarringInfoSetIndex */
typedef ossBoolean NR_EUTRA_PReSenceAntEnnaPorT1; /* EUTRA-PRESENCE-ANTENNA-PORT1 */
typedef unsigned short NR_EUTRA_PHySCelLId; /* EUTRA-PHYS-CELL-ID */
typedef unsigned int NR_ARFCN_VAlUeEUTRA; /* ARFCN-VALUEEUTRA */
typedef unsigned short NR_FReQBanDIndIcatorEUTRA; /* FREQ-BAND-INDICATOR-EUTRA */
typedef unsigned short NR_REsElectionThrEshold; /* RESELECTION-THRESHOLD */
typedef unsigned short NR_REsElectionThrEsholdQ; /* RESELECTION-THRESHOLDQ */
typedef unsigned short NR_CElLResElectionPriOrity; /* CELLRESELECTIONPRIORITY */
typedef unsigned short NR_PHySCelLId; /* PHYS-CELL-ID */
typedef unsigned short RRC_RSRP_Range; /* RSRP_Range */
typedef unsigned short RRC_RSRQ_Range; /* RSRQ_Range */
typedef unsigned short RRC_SINR_Range; /* SINR_Range */
typedef unsigned short RRC_RAN_AreaCode; /* RAN-AREACODE */
/***********************************/
/*************** Bit ***************/
typedef struct NRRRC_bit1 {
unsigned short length; /* number of significant bits */
unsigned char *value;
} NRRRC_bit1;
/***********************************/
/*************** Enum **************/
typedef enum NRRRC_enum1 {
NRRRC_pos2 = 0,
NRRRC_dmrs_TypeA_Position_pos3 = 1
} NRRRC_enum1;
typedef enum NRRRC_enum2 {
NRRRC_s30_1 = 0,
NRRRC_s60_1 = 1,
NRRRC_s120_1 = 2,
NRRRC_s180_1 = 3,
NRRRC_s240_1 = 4,
NRRRC_spare3_1 = 5,
NRRRC_spare2_1 = 6,
NRRRC_spare1_1 = 7
} NRRRC_enum2;
typedef enum NRRRC_enum3 {
NRRRC_dB_6_1 = 0,
NRRRC_dB_4_1 = 1,
NRRRC_dB_2_1 = 2,
NRRRC_dB0_1 = 3
} NRRRC_enum3;
typedef enum NRRRC_enum4 {
NRRRC_oDot25 = 0,
NRRRC_oDot5 = 1,
NRRRC_oDot75 = 2,
NRRRC_lDot0 = 3
} NRRRC_enum4;
typedef enum NRRRC_enum5 {
NRRRC_notLastSegment = 0,
NRRRC_lastSegment = 1
} NRRRC_enum5;
typedef enum NRRRC_enum6 {
NRRRC_true = 0
} NRRRC_enum6;
typedef enum NRRRC_enum7 {
NRRRC_n1_5 = 0,
NRRRC_n2_6 = 1,
NRRRC_n3_4 = 2,
NRRRC_n4_6 = 3
} NRRRC_enum7;
typedef enum NRRRC_enum8 {
NRRRC_dB0_2 = 0,
NRRRC_dB2_1 = 1,
NRRRC_dB4_1 = 2,
NRRRC_dB6_1 = 3
} NRRRC_enum8;
typedef enum NRRRC_enum9 {
NRRRC_oneEighth = 0,
NRRRC_oneFourth = 1,
NRRRC_oneHalf = 2,
NRRRC_ssb_perRACH_Occasion_one = 3,
NRRRC_ssb_perRACH_Occasion_two = 4,
NRRRC_ssb_perRACH_Occasion_four = 5,
NRRRC_ssb_perRACH_Occasion_eight = 6,
NRRRC_ssb_perRACH_Occasion_sixteen = 7
} NRRRC_enum9;
typedef enum NRRRC_enum10 {
NRRRC_n2_1 = 0,
NRRRC_n3_1 = 1,
NRRRC_n6_1 = 2
} NRRRC_enum10;
typedef enum NRRRC_enum11 {
NRRRC_enabled_1 = 0
} NRRRC_enum11;
typedef enum NRRRC_enum12 {
NRRRC_n0_1 = 0,
NRRRC_n1_1 = 1,
NRRRC_n2_2 = 2,
NRRRC_n3_2 = 3,
NRRRC_n4_1 = 4,
NRRRC_n5_1 = 5,
NRRRC_n6_2 = 6,
NRRRC_n8_1 = 7
} NRRRC_enum12;
typedef enum NRRRC_enum13 {
NRRRC_n1_4 = 0,
NRRRC_n2_5 = 1
} NRRRC_enum13;
typedef enum NRRRC_enum14 {
NRRRC_n2_11 = 0,
NRRRC_n4_12 = 1,
NRRRC_n8_7 = 2,
NRRRC_n16_3 = 3
} NRRRC_enum14;
typedef enum NRRRC_enum15 {
NRRRC_n4_2 = 0,
NRRRC_n8_2 = 1,
NRRRC_n12_1 = 2,
NRRRC_n16_1 = 3,
NRRRC_n20_1 = 4,
NRRRC_n24_1 = 5,
NRRRC_n28_1 = 6,
NRRRC_n32_1 = 7,
NRRRC_n36_1 = 8,
NRRRC_n40_1 = 9,
NRRRC_n44_1 = 10,
NRRRC_n48_1 = 11,
NRRRC_n52_1 = 12,
NRRRC_n56_1 = 13,
NRRRC_n60_1 = 14,
NRRRC_n64_1 = 15
} NRRRC_enum15;
enum NRRRC_enum16 {
NRRRC_two_n4 = 0,
NRRRC_two_n8 = 1,
NRRRC_two_n12 = 2,
NRRRC_two_n16 = 3,
NRRRC_two_n20 = 4,
NRRRC_two_n24 = 5,
NRRRC_two_n28 = 6,
NRRRC_two_n32 = 7
} NRRRC_enum16;
typedef enum NRRRC_enum17 {
NRRRC_ms100_1 = 0,
NRRRC_ms200_1 = 1,
NRRRC_ms300_1 = 2,
NRRRC_ms400_1 = 3,
NRRRC_ms600_1 = 4,
NRRRC_ms1000_1 = 5,
NRRRC_ms1500_1 = 6,
NRRRC_ms2000_1 = 7
} NRRRC_enum17;
typedef enum NRRRC_enum18 {
NRRRC_n310_n1 = 0,
NRRRC_n310_n2 = 1,
NRRRC_n310_n3 = 2,
NRRRC_n310_n4 = 3,
NRRRC_n310_n6 = 4,
NRRRC_n310_n8 = 5,
NRRRC_n310_n10 = 6,
NRRRC_n310_n20 = 7
} NRRRC_enum18;
typedef enum NRRRC_enum19 {
NRRRC_ms1000_2 = 0,
NRRRC_ms3000_1 = 1,
NRRRC_ms5000 = 2,
NRRRC_ms10000_1 = 3,
NRRRC_ms15000 = 4,
NRRRC_ms20000 = 5,
NRRRC_ms30000 = 6
} NRRRC_enum19;
typedef enum NRRRC_enum20 {
NRRRC_n1_2 = 0,
NRRRC_n2_3 = 1,
NRRRC_n3_3 = 2,
NRRRC_n4_4 = 3,
NRRRC_n5_2 = 4,
NRRRC_n6_3 = 5,
NRRRC_n8_3 = 6,
NRRRC_n10_1 = 7
} NRRRC_enum20;
typedef enum NRRRC_enum48 {
NRRRC_mappingType_typeA = 0,
NRRRC_mappingType_typeB = 1
} NRRRC_enum48;
/***********************************/
/************ Seqof *************/
struct NRRRC_seqof2 {
struct NRRRC_seqof2 *next;
NRRRC_SI_RequestResources value;
} *NRRRC_seqof2;
struct NRRRC_seqof3 {
struct NRRRC_seqof3 *next;
NRRRC_SchedulingInfo value;
} *NRRRC_seqof3;
typedef struct NRRRC_seqof4 {
struct NRRRC_seqof4 *next;
NRRRC_SCS_SpecificCarrier value;
} *NRRRC_seqof4;
typedef struct NRRRC_seqof5 {
struct NRRRC_seqof5 *next;
NR_TCI_STaTeId value;
} *NRRRC_seqof5;
typedef struct NRRRC_seqof6 {
struct NRRRC_seqof6 *next;
NRRRC_SearchSpace value;
} *NRRRC_seqof6;
typedef struct NRRRC_seqof7 {
struct NRRRC_seqof7 *next;
unsigned short value;
} *NRRRC_seqof7;
struct NRRRC_seqof99 {
struct NRRRC_seqof99 *next;
NRRRC_PLMN_Identity value;
} *NRRRC_seqof99;
/***********************************/
/*************seq*******************/
typedef struct NRRRC_seq1 {
char placeholder;
} NRRRC_seq1;
typedef struct NRRRC_seq6 {
NR_REsElectionThrEsholdQ threshX_HighQ;
NR_REsElectionThrEsholdQ threshX_LowQ;
} NRRRC_seq6;
/***********************************/
/************ Octet *************/
typedef struct NRRRC_octet1 {
unsigned int length;
unsigned char *value;
} NRRRC_octet1;
typedef struct NRRRC_octet2 {
unsigned short length;
unsigned char value[1];
} NRRRC_octet2;
/***********************************/
/* ============================================== MIB ====================================================*/
/* -------------------------------------------------------------------------------------------------------*/
/* PDCCH-CONFIGSIB1 */
typedef struct NRRRC_PDCCH_ConfigSIB1 {
NR_COnTrolResOurceSetZerO controlResourceSetZero;
NR_SEaRchSpaCeZerO searchSpaceZero;
} NRRRC_PDCCH_ConfigSIB1;
/* MIB */
typedef struct NRRRC_MIB {
NRRRC_bit1 systemFrameNumber;
enum NRRRC_enum_WcdMT {
NRRRC_scs15or60 = 0,
NRRRC_scs30or120 = 1
} subCarrierSpacingCommon;
unsigned short ssb_SubcarrierOffset;
NRRRC_enum1 dmrs_TypeA_Position;
NRRRC_PDCCH_ConfigSIB1 pdcch_ConfigSIB1;
enum NRRRC_enum_RfoYO {
NRRRC_barred = 0,
NRRRC_notBarred = 1
} cellBarred;
enum NRRRC_enum_VXJgL {
NRRRC_allowed = 0,
NRRRC_notAllowed = 1
} intraFreqReselection;
NRRRC_bit1 spare;
} NRRRC_MIB;
/* ============================================== SIB ====================================================*/
/* -------------------------------------------------------------------------------------------------------*/
typedef struct NRRRC_MCC {
struct NRRRC_MCC *next;
NR_MCC_MNC_DIgIt value;
} *NRRRC_MCC;
typedef struct NRRRC_MNC {
struct NRRRC_MNC *next;
NR_MCC_MNC_DIgIt value;
} *NRRRC_MNC;
/* PLMN-IDENTITY-INFORMATION */
typedef struct NRRRC_PLMN_Identity {
unsigned char bit_mask;
#define NRRRC_mcc_present 0x80
struct NRRRC_MCC *mcc; /* optional; set in bit_mask NRRRC_mcc_present if
* present */
/* Cond MCC */
struct NRRRC_MNC *mnc;
} NRRRC_PLMN_Identity;
/* TRACKINGAREACODE */
typedef struct NRRRC_TrackingAreaCode {
unsigned short length; /* number of significant bits */
unsigned char *value;
} NRRRC_TrackingAreaCode;
typedef struct NRRRC_CellIdentity {
unsigned short length; /* number of significant bits */
unsigned char *value;
} NRRRC_CellIdentity;
typedef struct NRRRC_PLMN_IdentityInfo {
unsigned char bit_mask;
#define NRRRC_trackingAreaCode_present 0x80
#define NRRRC_ranac_present 0x40
struct NRRRC_seqof99 *plmn_IdentityList;
NRRRC_TrackingAreaCode trackingAreaCode; /* optional; set in bit_mask
* NRRRC_trackingAreaCode_present
* if present */
/* Need R */
RRC_RAN_AreaCode ranac; /* optional; set in bit_mask NRRRC_ranac_present
* if present */
/* Need R */
NRRRC_CellIdentity cellIdentity;
enum NRRRC_enum_FJk3O {
NRRRC_reserved = 0,
NRRRC_notReserved = 1
} cellReservedForOperatorUse;
} NRRRC_PLMN_IdentityInfo;
/* PLMN-IDENTITY-LIST */
typedef struct NRRRC_PLMN_IdentityInfoList {
struct NRRRC_PLMN_IdentityInfoList *next;
NRRRC_PLMN_IdentityInfo value;
} *NRRRC_PLMN_IdentityInfoList;
/* CELL-ACCESS-RELATED-INFO */
typedef struct NRRRC_CellAccessRelatedInfo {
unsigned char bit_mask;
#define NRRRC_cellReservedForOtherUse_present 0x80
struct NRRRC_PLMN_IdentityInfoList *plmn_IdentityList;
NRRRC_enum6 cellReservedForOtherUse; /* optional; set in bit_mask
* NRRRC_cellReservedForOtherUse_present if
* present */
/* Need R */
} NRRRC_CellAccessRelatedInfo;
/* CONNESTFAILURECONTROL */
typedef struct NRRRC_ConnEstFailureControl {
unsigned char bit_mask;
#define NRRRC_connEstFailOffset_present 0x80
NRRRC_enum7 connEstFailCount;
enum NRRRC_enum_EwJkP {
NRRRC_connEstFailOffsetValidity_s30 = 0,
NRRRC_connEstFailOffsetValidity_s60 = 1,
NRRRC_connEstFailOffsetValidity_s120 = 2,
NRRRC_connEstFailOffsetValidity_s240 = 3,
NRRRC_s300 = 4,
NRRRC_s420 = 5,
NRRRC_s600 = 6,
NRRRC_s900 = 7
} connEstFailOffsetValidity;
unsigned short connEstFailOffset; /* optional; set in bit_mask
* NRRRC_connEstFailOffset_present if
* present */
/* Need S */
} NRRRC_ConnEstFailureControl;
typedef struct NRRRC_SIB_TypeInfo {
unsigned char bit_mask;
#define NRRRC_valueTag_present 0x80
#define NRRRC_areaScope_present 0x40
enum NRRRC_enum_GxyLL {
NRRRC_sibType2 = 0,
NRRRC_sibType3 = 1,
NRRRC_sibType4 = 2,
NRRRC_sibType5 = 3,
NRRRC_sibType6 = 4,
NRRRC_sibType7 = 5,
NRRRC_sibType8 = 6,
NRRRC_sibType9 = 7,
NRRRC_type_spare8 = 8,
NRRRC_type_spare7 = 9,
NRRRC_type_spare6 = 10,
NRRRC_type_spare5 = 11,
NRRRC_type_spare4 = 12,
NRRRC_type_spare3 = 13,
NRRRC_type_spare2 = 14,
NRRRC_type_spare1 = 15
} type;
unsigned short valueTag; /* optional; set in bit_mask
* NRRRC_valueTag_present if present */
/* Cond SIB-TYPE */
NRRRC_enum6 areaScope; /* optional; set in bit_mask
* NRRRC_areaScope_present if present */
/* Cond AREA-ID */
} NRRRC_SIB_TypeInfo;
typedef struct NRRRC_SIB_Mapping {
struct NRRRC_SIB_Mapping *next;
NRRRC_SIB_TypeInfo value;
} *NRRRC_SIB_Mapping;
typedef struct NRRRC_SchedulingInfo {
enum NRRRC_enum_37wF5 {
NRRRC_broadcasting = 0,
NRRRC_notBroadcasting = 1
} si_BroadcastStatus;
enum NRRRC_enum_HIJDT {
NRRRC_rf8 = 0,
NRRRC_rf16 = 1,
NRRRC_si_Periodicity_rf32 = 2,
NRRRC_si_Periodicity_rf64 = 3,
NRRRC_si_Periodicity_rf128 = 4,
NRRRC_si_Periodicity_rf256 = 5,
NRRRC_rf512 = 6
} si_Periodicity;
struct NRRRC_SIB_Mapping *sib_MappingInfo;
} NRRRC_SchedulingInfo;
/* RACH-CONFIG-GENERIC */
typedef struct NRRRC_RACH_ConfigGeneric {
unsigned short prach_ConfigurationIndex;
enum NRRRC_enum_HqpEJ {
NRRRC_msg1_FDM_one = 0,
NRRRC_msg1_FDM_two = 1,
NRRRC_msg1_FDM_four = 2,
NRRRC_msg1_FDM_eight = 3
} msg1_FDM;
unsigned short msg1_FrequencyStart;
unsigned short zeroCorrelationZoneConfig;
short preambleReceivedTargetPower;
enum NRRRC_enum_Vgmp6 {
NRRRC_preambleTransMax_n3 = 0,
NRRRC_preambleTransMax_n4 = 1,
NRRRC_preambleTransMax_n5 = 2,
NRRRC_preambleTransMax_n6 = 3,
NRRRC_preambleTransMax_n7 = 4,
NRRRC_preambleTransMax_n8 = 5,
NRRRC_preambleTransMax_n10 = 6,
NRRRC_preambleTransMax_n20 = 7,
NRRRC_preambleTransMax_n50 = 8,
NRRRC_preambleTransMax_n100 = 9,
NRRRC_preambleTransMax_n200 = 10
} preambleTransMax;
NRRRC_enum8 powerRampingStep;
enum NRRRC_enum_EhIo3 {
NRRRC_ra_ResponseWindow_sl1 = 0,
NRRRC_ra_ResponseWindow_sl2 = 1,
NRRRC_ra_ResponseWindow_sl4 = 2,
NRRRC_ra_ResponseWindow_sl8 = 3,
NRRRC_ra_ResponseWindow_sl10 = 4,
NRRRC_ra_ResponseWindow_sl20 = 5,
NRRRC_ra_ResponseWindow_sl40 = 6,
NRRRC_ra_ResponseWindow_sl80 = 7
} ra_ResponseWindow;
} NRRRC_RACH_ConfigGeneric;
typedef struct NRRRC_SI_RequestResources {
unsigned char bit_mask;
#define NRRRC_ra_AssociationPeriodIndex_present 0x80
#define NRRRC_SI_RequestResources_ra_ssb_OccasionMaskIndex_present 0x40
unsigned short ra_PreambleStartIndex;
unsigned short ra_AssociationPeriodIndex; /* optional; set in bit_mask
* NRRRC_ra_AssociationPeriodIndex_present if
* present */
/* Need R */
unsigned short ra_ssb_OccasionMaskIndex; /* optional; set in bit_mask
* NRRRC_SI_RequestResources_ra_ssb_OccasionMaskIndex_present if
* present */
/* Need R */
} NRRRC_SI_RequestResources;
/* Configuration for Msg1 based SI Request */
typedef struct NRRRC_SI_RequestConfig {
unsigned char bit_
NR 5G MIB和SIB(sib1-sib9)结构体定义代码(C语言)
于 2019-08-23 10:16:50 首次发布