Changes for Multi-UE support and DL_MSG scheduling using K0 and K1 [Issue-ID: ODUHIGH...
[o-du/l2.git] / src / du_app / du_cfg.h
index 676e31f..d5311b6 100644 (file)
 #define NR_DL_ARFCN 623400
 #define NR_UL_ARFCN 623400
 #define NR_FREQ_BAND 78
+#define NR_SCS SCS_30KHZ
+#define NR_BANDWIDTH BANDWIDTH_100MHZ
 #else
 #define DUPLEX_MODE DUP_MODE_FDD
 #define NR_NUMEROLOGY 0
 #define NR_DL_ARFCN 428000
 #define NR_UL_ARFCN 390000
 #define NR_FREQ_BAND 1
+#define NR_SCS SCS_15KHZ
+#define NR_BANDWIDTH BANDWIDTH_20MHZ
 #endif
 
 #define DU_TAC 1
@@ -69,8 +73,6 @@
 #define SUL_ARFCN 100
 #define SUL_BAND 2
 
-
-
 #define TIME_CFG 0
 #define CARRIER_IDX 1
 #define NUM_TX_ANT 2
 
 /* MACRO defines for PRACH Configuration */
 #define PRACH_CONFIG_IDX   88
-#define PRACH_FREQ_START   0
+#define PRACH_MAX_PRB  24  /* As per (spec 38.211-Table 6.3.3.2-1), max allocated PRBs can go upto 24 */
+#define PRACH_FREQ_START  (MAX_NUM_RB - PRACH_MAX_PRB) /* In order to allocate PRACH from end of the resource grid */
 #define PRACH_SEQ_LEN SHORT_SEQUENCE
-#define PRACH_SUBCARRIER_SPACING 0
+#define PRACH_SUBCARRIER_SPACING NR_SCS
 #define PRACH_RESTRICTED_SET_CFG 0
 #define NUM_PRACH_FDM 1
 #define ROOT_SEQ_IDX 0
 
 #define RSS_MEASUREMENT_UNIT DONT_REPORT_RSSI
 #define RA_CONT_RES_TIMER 64
-#define RA_RSP_WINDOW 180
+#define RA_RSP_WINDOW 10
 #define PRACH_RESTRICTED_SET 0 /* Unrestricted */
 #define ROOT_SEQ_LEN 139
 
 
 /* Macro define for PUCCH Configuration */
 #define PUCCH_RSRC_COMMON  0
-#define PUCCH_GROUP_HOPPING 2 /* disable */
+#define PUCCH_GROUP_HOPPING 0 /* Neither sequence hopping nor group hopping */
 #define PUCCH_P0_NOMINAL   -74
 
 /* MACRO defines for TDD DL-UL Configuration */
 /* Events */
 #define EVTCFG 0
 
-#ifdef EGTP_TEST
-/* Macro definitions for EGTP procedures */
-#define EGTP_LCL_TEID 1     /* EGTP local tunnel id */
-#define EGTP_REM_TEID 10    /* EGTP remote tinnel id */
-#endif
-
-
 /* Macro definitions for F1 procedures */
 #define CU_DU_NAME_LEN_MAX 30      /* Max length of CU/DU name string */
 #define MAX_F1_CONNECTIONS 65536    /* Max num of F1 connections */
 #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 DMRS_ADDITIONAL_POS  0          /* DMRS Additional poistion */
 #define RES_ALLOC_TYPE       1          /* Resource allocation type */
 
-#ifdef EGTP_TEST
-#define UE_ID 1
-#define RB_ID 1
-#define LC_ID 1
-#endif
-
 /* MACRO definitions for modulcation order */
 #define MOD_ORDER_QPSK  2
 #define MOD_ORDER_QAM16 4
 #define PDSCH_MCS_INDEX 20  /* For 64QAM, valid mcs index: 17-28 in 38.214  - Table 5.1.3.1-1*/
 #define PUSCH_MCS_INDEX 10  /* For 16QAM, valid mcs index: 10-16 in 38.214  - Table 5.1.3.1-1*/
 
+/*VALID Tunnel ID*/
+#define MIN_TEID 1   /*[Spec 29.281,Sec 5.1]: All Zero TEIDs are never assigned for setting up GTP-U Tunnel*/
+#define MAX_TEID 10 /*[Spec 29.281]: Max limit is not mentioned but as per GTP-U Header Format, TEID occupies 4 octets */
+
+/* Slice Ratio */
+#define MAX_RATIO        30
+#define MIN_RATIO        20
+#define DEDICATED_RATIO  10
+#define DEDICATED_SLICE_INDEX   1 
+#define NUM_OF_SUPPORTED_SLICE  2
+
 typedef enum
 {
    GNBDU,
@@ -493,13 +492,6 @@ typedef enum
    PUSCH_MAPPING_TYPE_B,
 }puschMappingType;
 
-typedef enum
-{
-   PRB,
-   DRB,
-   RRC_CONNECTED_USERS
-}ResourceType;
-
 typedef struct f1RrcVersion
 {
    char    rrcVer[30];     /* Latest RRC Version */
@@ -656,12 +648,6 @@ typedef struct f1EutraModeInfo
    }mode;
 }F1EutraModeInfo;
 
-typedef struct f1Snsaai
-{
-   uint8_t   sst;
-   uint8_t   sd[SD_SIZE];
-}F1Snsaai;
-
 typedef struct epIpAddr
 {
    char transportAddr[20]; /* Transport Layer Address */
@@ -673,32 +659,10 @@ typedef struct epIpAddrPort
    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;
    uint8_t    numSupportedSlices;
-   F1Snsaai   *snssai[MAX_NUM_OF_SLICE_ITEMS];   
+   Snssai    **snssai;   
 }F1TaiSliceSuppLst;
 
 typedef struct f1SrvdPlmn
@@ -706,7 +670,6 @@ typedef struct f1SrvdPlmn
    Plmn   plmn;
    Plmn   extPlmn;    /* Extended available PLMN list */
    F1TaiSliceSuppLst taiSliceSuppLst;
-   RrmPolicy  rrmPolicy;
 }F1SrvdPlmn;
 
 typedef struct f1BrdcstPlmnInfo