#define MAX_F1_CONNECTIONS 65536 /* Max num of F1 connections */
#define MAX_PLMN 1 /* Max num of broadcast PLMN ids */
#define MAXNRARFCN 3279165 /* Maximum values of NRAFCN */
-#define MAXNRCELLBANDS 2 /* Maximum number of frequency bands */
+#define MAX_NRCELL_BANDS 2 /* Maximum number of frequency bands */
#define MAX_NUM_OF_SLICE_ITEMS 1024 /* Maximum number of signalled slice support items */
-#define MAXBPLMNNRMINUS1 1 /* Maximum number of PLMN Ids broadcast in an NR cell minus 1 */
+#define MAX_BPLMN_NRCELL_MINUS_1 1 /* Maximum number of PLMN Ids broadcast in an NR cell minus 1 */
#define MAXNUMOFSIBTYPES 32 /* Maximum number of SIB types */
#define MAX_TNL_ASSOC 32 /* Max num of TNL Assoc between CU and DU */
#define MAXCELLINENB 256 /* Max num of cells served by eNB */
#define MAXNUMOFUACPERPLMN 64 /* Maximum number of signalled categories per PLMN */
#define NR_RANAC 150 /* RANAC */
#define DEFAULT_CELLS 1 /* Max num of broadcast PLMN ids */
-
+#define NUM_OF_SUPPORTED_SLICE 2
+#define DEDICATED_SLICE_INDEX 1
+#define IE_EXTENSION_LIST_COUNT 1
/* Macro definitions for MIB/SIB1 */
#define SYS_FRAME_NUM 0
PUSCH_MAPPING_TYPE_B,
}puschMappingType;
+typedef enum
+{
+ PRB,
+ DRB,
+ RRC_CONNECTED_USERS
+}ResourceType;
typedef struct f1RrcVersion
{
typedef struct f1FreqBand
{
uint16_t nrFreqBand;
- uint16_t sulBand[MAXNRCELLBANDS];
+ uint16_t sulBand[MAX_NRCELL_BANDS];
}F1FreqBand;
typedef struct f1NrFreqInfo
{
uint32_t nrArfcn;
F1SulInfo sulInfo;
- F1FreqBand freqBand[MAXNRCELLBANDS];
+ F1FreqBand freqBand[MAX_NRCELL_BANDS];
}F1NrFreqInfo;
typedef struct f1NrFddInfo
typedef struct f1Snsaai
{
uint8_t sst;
- uint32_t sd;
+ uint8_t sd[SD_SIZE];
}F1Snsaai;
typedef struct epIpAddr
char port[2];
}EpIpAddrPort;
+typedef struct policyMemberList
+{
+ Plmn plmn;
+ F1Snsaai snsaai;
+}PolicyMemberList;
+
+typedef struct rrmPolicyRatio
+{
+ uint8_t policyMaxRatio;
+ uint8_t policyMinRatio;
+ uint8_t policyDedicatedRatio;
+}RrmPolicyRatio;
+
+typedef struct rrmPolicy
+{
+ bool present;
+ ResourceType rsrcType;
+ PolicyMemberList memberList;
+ RrmPolicyRatio rrmPolicyRatio;
+}RrmPolicy;
+
typedef struct f1TaiSliceSuppLst
{
bool pres;
- F1Snsaai snssai[MAX_NUM_OF_SLICE_ITEMS];
+ uint8_t numSupportedSlices;
+ F1Snsaai *snssai[MAX_NUM_OF_SLICE_ITEMS];
}F1TaiSliceSuppLst;
typedef struct f1SrvdPlmn
{
- Plmn plmn;
- F1TaiSliceSuppLst taiSliceSuppLst;
+ Plmn plmn;
+ Plmn extPlmn; /* Extended available PLMN list */
+ F1TaiSliceSuppLst taiSliceSuppLst;
+ RrmPolicy rrmPolicy;
}F1SrvdPlmn;
typedef struct f1BrdcstPlmnInfo
{
NrEcgi nrCgi; /* Cell global Identity */
uint32_t nrPci; /* Physical Cell Identity */
- Plmn plmn[MAX_PLMN]; /* Available PLMN list */
- Plmn extPlmn[MAX_PLMN]; /* Extended available PLMN list */
+ F1SrvdPlmn srvdPlmn[MAX_PLMN];
}F1CellInfo;
typedef struct f1DuCellInfo
uint8_t measTimeCfg; /* Measurement timing configuration */
F1CellDir cellDir; /* Cell Direction */
F1CellType cellType; /* Cell Type */
- F1BrdcstPlmnInfo brdcstPlmnInfo[MAXBPLMNNRMINUS1]; /* Broadcast PLMN Identity Info List */
+ F1BrdcstPlmnInfo brdcstPlmnInfo[MAX_BPLMN_NRCELL_MINUS_1]; /* Broadcast PLMN Identity Info List */
}F1DuCellInfo;
typedef struct f1DuSysInfo