25#ifndef _NETSIM_LTENR_SPECTRUM_H_
26#define _NETSIM_LTENR_SPECTRUM_H_
31#pragma region SLOT_TYPE
32 typedef enum enum_SLOTTYPE
38 static char strLTENR_SLOTTYPE[][50] = {
"UPLink",
"Downlink",
"Mixed" };
41#pragma region UE_LIST_CA
47 }LTENR_CA_UE_LIST, * ptrLTENR_CA_UE_LIST;
58 long double original_channelBandwidth_mHz;
59 long double channelBandwidth_mHz;
65 UINT8 subCarrierSpacing_kHz;
66 UINT16 prbBandwidth_kHz;
70 UINT8 slotPerSubframe;
71 double slotDuration_us;
72 double symbolDuration_us;
74 LTENR_SLOTTYPE configSlotType;
77 UINT64 totalSlotCount;
88 ptrLTENR_CA_UE_LIST ue_list;
89 }LTENR_CA, * ptrLTENR_CA;
92#pragma region SPECTRUM_CONFIG
98 UINT subFrameDuration;
99 UINT subFramePerFrame;
100 UINT8 numSubcarrierPerPRB;
102 ptrLTENR_CA CA[MAX_CA_COUNT];
103 ptrLTENR_CA CA_original[MAX_CA_COUNT];
108 }LTENR_SPECTRUMCONFIG, * ptrLTENR_SPECTRUMCONFIG;
115 double lFrequency_MHz;
116 double uFrequency_MHz;
117 double centralFrequency_MHz;
118 double prbBandwidth_MHz;
120 }LTENR_PRB, * ptrLTENR_PRB;
124#define LTENR_MAX_CQI 15
125#define LTENR_MAX_MCS 32
126#define NUM_OF_RE_IN_DMRS 0
127#define LTENR_DEFAULT_SPECTRAL_EFFICIENCY 0.16
130#pragma region CQI_TABLE
134 PHY_MODULATION modulation;
137 }LTENR_CQITable, * ptrLTENR_CQITable;
138#define CQIINDEX_ISVALID(index) (((index)>0) && ((index)<=LTENR_MAX_CQI))
139#define CQITABLE_EFFICIENCY(table,index) (CQIINDEX_ISVALID(index)?(((table)[(index)]).efficiency):0)
142#pragma region MCS_INDEX
147 PHY_MODULATION modulation;
149 double spectralEfficiency;
150 }LTENR_MCSINDEXTABLE, * ptrLTENR_MCSINDEXTABLE;
153#pragma region TBS_SIZE
158 }LTENR_TBSTABLE, * ptrLTENR_TBSTABLE;
161#pragma region AMC_INFO
164 double SpectralEfficiency;
166 LTENR_CQITable cqiTable;
168 LTENR_MCSINDEXTABLE mcsTable;
174 }LTENR_AMCINFO, * ptrLTENR_AMCINFO;
177#pragma region FUN_DEF
179 LTENR_CQITable LTENR_GetCQITableFromSpectralEfficiency(ptrLTENR_CQITable table,
double efficiency);
180 LTENR_MCSINDEXTABLE LTENR_GetMCSIndexTableFromSpectralEfficiency(ptrLTENR_MCSINDEXTABLE table,
double efficiency);
181 UINT64 LTENR_calculateTBSSize(
void* gnbPhy,
183 LTENR_MCSINDEXTABLE mcsTable,
int CA_ID);