NetSim Source Code Help
Loading...
Searching...
No Matches
LTENR_Spectrum.h
Go to the documentation of this file.
1#pragma once
2/************************************************************************************
3* Copyright (C) 2021 *
4* TETCOS, Bangalore. India *
5* *
6* Tetcos owns the intellectual property rights in the Product and its content. *
7* The copying, redistribution, reselling or publication of any or all of the *
8* Product or its content without express prior written consent of Tetcos is *
9* prohibited. Ownership and / or any other right relating to the software and all *
10* intellectual property rights therein shall remain at all times with Tetcos. *
11* *
12* This source code is licensed per the NetSim license agreement. *
13* *
14* No portion of this source code may be used as the basis for a derivative work, *
15* or used, for any purpose other than its intended use per the NetSim license *
16* agreement. *
17* *
18* This source code and the algorithms contained within it are confidential trade *
19* secrets of TETCOS and may not be used as the basis for any other software, *
20* hardware, product or service. *
21* *
22* Author: Shashi Kant Suman *
23* *
24* ----------------------------------------------------------------------------------*/
25#ifndef _NETSIM_LTENR_SPECTRUM_H_
26#define _NETSIM_LTENR_SPECTRUM_H_
27#ifdef __cplusplus
28extern "C" {
29#endif
30
31#pragma region SLOT_TYPE
32 typedef enum enum_SLOTTYPE
33 {
38 static char strLTENR_SLOTTYPE[][50] = { "UPLink","Downlink","Mixed" };
39#pragma endregion
40
41#pragma region UE_LIST_CA
42 typedef struct stru_LTENR_CA_UE_LIST
43 {
48#pragma endregion
49
50#pragma region CA
51 typedef struct stru_LTENR_CA {
52
55
63
64 UINT8 mu; //Subcarrier spacing configuration
73
78
79 //BWP
83
86#pragma endregion
87
88#pragma region SPECTRUM_CONFIG
90 {
92
97
100
102
105#pragma endregion
106
107#pragma region PRB
108 typedef struct stru_LTENR_PRB
109 {
115
117#pragma endregion
118
119#pragma region MACROS
120#define LTENR_MAX_CQI 15
121#define LTENR_MAX_MCS 32
122#define NUM_OF_RE_IN_DMRS 0
123#define LTENR_DEFAULT_SPECTRAL_EFFICIENCY 0.16
124#pragma endregion
125
126#pragma region CQI_TABLE
127 typedef struct stru_LTENR_CQITable
128 {
134#define CQIINDEX_ISVALID(index) (((index)>0) && ((index)<=LTENR_MAX_CQI))
135#define CQITABLE_EFFICIENCY(table,index) (CQIINDEX_ISVALID(index)?(((table)[(index)]).efficiency):0)
136#pragma endregion
137
138#pragma region MCS_INDEX
140 {
144 double codeRate; //R*1024
147#pragma endregion
148
149#pragma region TBS_SIZE
150 typedef struct stru_TBSTable
151 {
155#pragma endregion
156
157#pragma region AMC_INFO
158 typedef struct stru_AMCInfo
159 {
161
163
166 UINT BG; // LDPC base Graph
167 UINT CBS; //Code Block Size
168 UINT CBS_; //value of K_
169 UINT nCodeBlock; //C, Number of Code Blocks
171#pragma endregion
172
173#pragma region FUN_DEF
174 //Function prototype
178 UINT allocatedPRB,
179 LTENR_MCSINDEXTABLE mcsTable, int CA_ID);
180#pragma endregion
181
182#ifdef __cplusplus
183}
184#endif
185#endif /* _NETSIM_LTENR_SPECTRUM_H_ */
unsigned int NETSIM_ID
Definition: Animation.h:45
#define MAX_CA_COUNT
Definition: LTE_NR.h:775
struct stru_TBSTable * ptrLTENR_TBSTABLE
UINT64 LTENR_calculateTBSSize(void *gnbPhy, UINT allocatedPRB, LTENR_MCSINDEXTABLE mcsTable, int CA_ID)
struct stru_AMCInfo * ptrLTENR_AMCINFO
struct stru_LTENR_PRB * ptrLTENR_PRB
struct stru_LTENR_MCSIndexTable LTENR_MCSINDEXTABLE
enum enum_SLOTTYPE LTENR_SLOTTYPE
struct stru_LTENR_CA * ptrLTENR_CA
LTENR_MCSINDEXTABLE LTENR_GetMCSIndexTableFromSpectralEfficiency(ptrLTENR_MCSINDEXTABLE table, double efficiency)
struct stru_AMCInfo LTENR_AMCINFO
struct stru_LTENR_MCSIndexTable * ptrLTENR_MCSINDEXTABLE
struct stru_LTENR_SpectrumConfig LTENR_SPECTRUMCONFIG
enum_SLOTTYPE
@ SLOT_DOWNLINK
@ SLOT_UPLINK
@ SLOT_MIXED
static char strLTENR_SLOTTYPE[][50]
LTENR_CQITable LTENR_GetCQITableFromSpectralEfficiency(ptrLTENR_CQITable table, double efficiency)
struct stru_LTENR_CQITable * ptrLTENR_CQITable
struct stru_LTENR_PRB LTENR_PRB
struct stru_LTENR_CA_UE_LIST LTENR_CA_UE_LIST
struct stru_LTENR_SpectrumConfig * ptrLTENR_SPECTRUMCONFIG
struct stru_TBSTable LTENR_TBSTABLE
struct stru_LTENR_CA_UE_LIST * ptrLTENR_CA_UE_LIST
struct stru_LTENR_CQITable LTENR_CQITable
struct stru_LTENR_CA LTENR_CA
#define UINT64
Definition: Linux.h:37
#define UINT
Definition: Linux.h:38
#define UINT16
Definition: Linux.h:33
#define UINT8
Definition: Linux.h:31
enum enum_Modulation PHY_MODULATION
LTENR_MCSINDEXTABLE mcsTable
double SpectralEfficiency
LTENR_CQITable cqiTable
struct stru_LTENR_CA_UE_LIST * next
UINT64 totalSlotCount
UINT8 subCarrierSpacing_kHz
long double original_channelBandwidth_mHz
UINT16 prbBandwidth_kHz
UINT8 slotPerSubframe
char * cyclicPrefix
double guardBand_kHz
long double channelBandwidth_mHz
ptrLTENR_CA_UE_LIST ue_list
UINT64 dlSlotCount
LTENR_SLOTTYPE configSlotType
double slotDuration_us
double symbolDuration_us
double dlSlotRatio
char * operatingBand
char * frequencyRange
PHY_MODULATION modulation
double prbBandwidth_MHz
double centralFrequency_MHz
ptrLTENR_CA CA_original[MAX_CA_COUNT]
ptrLTENR_CA CA[MAX_CA_COUNT]