[Epic-ID: ODUHIGH-462][Task-ID: ODUHIGH-472] Implementation of drx timer
[o-du/l2.git] / src / cm / mac_sch_interface.h
index 1ab00fb..a38e407 100644 (file)
@@ -772,6 +772,46 @@ typedef struct schHqCfgParam
    uint8_t maxUlDataHqTx;
 }SchHqCfg;
 
+#ifdef NR_DRX
+/* The following list of structures is taken from the DRX-Config section of specification 33.331. */
+
+typedef struct schDrxOnDurationTimer
+{
+   bool     onDurationTimerValInMs;
+   union
+   {
+      uint8_t  subMilliSeconds;
+      uint16_t milliSeconds;
+   }onDurationtimerValue;
+}SchDrxOnDurationTimer;
+
+typedef struct schDrxLongCycleStartOffset
+{
+   uint16_t drxLongCycleStartOffsetChoice;
+   uint16_t drxLongCycleStartOffsetVal;
+}SchDrxLongCycleStartOffset;
+
+typedef struct schShortDrx
+{
+   uint16_t   drxShortCycle;
+   uint8_t    drxShortCycleTimer;
+}SchShortDrx;
+
+typedef struct schDrxCfg
+{
+   SchDrxOnDurationTimer       drxOnDurationTimer;
+   uint16_t                    drxInactivityTimer;
+   uint8_t                     drxHarqRttTimerDl;
+   uint8_t                     drxHarqRttTimerUl;
+   uint16_t                    drxRetransmissionTimerDl;
+   uint16_t                    drxRetransmissionTimerUl;
+   SchDrxLongCycleStartOffset  drxLongCycleStartOffset;
+   bool                        shortDrxPres;
+   SchShortDrx                 shortDrx;
+   uint8_t                     drxSlotOffset;
+}SchDrxCfg;
+#endif
+
 typedef struct schCellCfg
 {
    uint16_t       cellId;           /* Cell Id */
@@ -790,7 +830,7 @@ typedef struct schCellCfg
    SchHqCfg       schHqCfg;
 #ifdef NR_TDD
    TDDCfg         tddCfg;           /* TDD Cfg */ 
-#endif  
+#endif 
 }SchCellCfg;
 
 typedef struct schCellCfgCfm
@@ -1159,6 +1199,10 @@ typedef struct schMacCellGrpCfg
    SchSchedReqCfg   schedReqCfg;
    SchTagCfg        tagCfg;
    SchPhrCfg        phrCfg;             /* To be used only if phrCfgSetupPres is true */      
+#ifdef NR_DRX
+   bool             drxCfgPresent;
+   SchDrxCfg        drxCfg;          /* Drx configuration */
+#endif
 }SchMacCellGrpCfg;
 
 /* Physical Cell Group Configuration */
@@ -1611,6 +1655,9 @@ typedef struct schUeCfg
    uint8_t            numLcs;
    SchLcCfg           schLcCfg[MAX_NUM_LC];
    SchDataTransmission dataTransmissionInfo;
+#ifdef NR_DRX   
+   bool     drxConfigIndicatorRelease;
+#endif
 }SchUeCfg;
 
 typedef struct schUeCfgRsp