[Epic-ID: ODUHIGH-462][Task-ID: ODUHIGH-472] Implementation of DL Harq Rtt timer...
[o-du/l2.git] / src / 5gnrsch / sch.h
index 11248c1..7309e30 100644 (file)
@@ -99,7 +99,6 @@ typedef enum
    SCH_UE_HANDIN_IN_PROGRESS
 }SchUeState;
 
-
 typedef enum
 {
    SCH_RA_STATE_MSG2_HANDLE,
@@ -189,11 +188,12 @@ typedef struct schDlHqTbCb
 #ifdef NR_DRX
 typedef struct schDrxHarqCb
 {
-   uint32_t     retxStrtIndex;     
-   uint32_t     rttIndex;                  
-   uint32_t     retxIndex;        
-   int16_t      retxExpDistance; 
-   uint8_t      retxTmrReduction;     
+   uint32_t     rttExpIndex;
+   CmLList      *rttExpNode;
+   uint32_t     retxStrtIndex; 
+   CmLList      *retxStrtNode;
+   uint32_t     retxExpIndex;
+   CmLList      *retxExpNode;
 }SchDrxHarqCb;
 #endif
 
@@ -215,8 +215,9 @@ typedef struct schUlHqProcCb
    uint8_t           dmrsMappingType;
    uint8_t           nrOfDmrsSymbols;
    uint8_t           dmrsAddPos;
+   SlotTimingInfo    puschTime;
 #ifdef NR_DRX
-   SchDrxHarqCb      drxHarqCb;
+   SchDrxHarqCb      ulDrxHarqCb;
 #endif
 }SchUlHqProcCb;
 
@@ -231,8 +232,9 @@ struct schDlHqProcCb
    uint8_t           k1;
    SchLcPrbEstimate  dlLcPrbEst; /*DL PRB Alloc Estimate among different LC*/
    CmLList           dlHqProcLink;
+   SlotTimingInfo    pucchTime;
 #ifdef NR_DRX
-   SchDrxHarqCb      drxHarqCb;
+   SchDrxHarqCb      dlDrxHarqCb;
 #endif
 };
 struct schUlHqEnt
@@ -413,21 +415,25 @@ typedef struct schHqUlMap
 #ifdef NR_DRX
 typedef struct  schDrxUeCb
 {
-   bool      drxDlUeActiveStatus;    /* This variable is used to store the status about downlink active status */
-   bool      drxUlUeActiveStatus;    /* This variable is used to store the status about uplink active status */
-   uint32_t  onDurationLen;          /* on duration value recived from ue cfg/recfg */
-   uint32_t  inActvTimerLen;         /* inActvTimer value recived from ue cfg/recfg */
-   uint8_t   harqRttDlTimerLen;      /* harqRttDlTimer value recived from ue cfg/recfg */
-   uint8_t   harqRttUlTimerLen;      /* harqRttUlTimer value recived from ue cfg/recfg */
-   uint32_t  retransDlTimerLen;      /* retransDlTimer value recived from ue cfg/recfg */
-   uint32_t  retransUlTimerLen;      /* retransUlTimer  value recived from ue cfg/recfg */
-   uint32_t  longCycleLen;           /* long Cycle value recived from ue cfg/recfg */
+   bool      drxDlUeActiveStatus;       /* Final Dl Ue status which is marked as true if drxDlUeActiveMask or drxDlUeActiveMaskForHarq is present */
+   bool      drxUlUeActiveStatus;       /* Final Ul Ue status which is marked as true if drxUlUeActiveMask or drxUlUeActiveMaskForHarq is present */
+   uint32_t  drxDlUeActiveMask;          /* variable is used to store the status about downlink active status of Ue for On-duration, inactive timer*/
+   uint32_t  drxUlUeActiveMask;          /* variable is used to store the status about uplink active status for on-duration inactive timer*/
+   uint32_t  drxDlUeActiveMaskForHarq;   /* variable is used to store the status about downlink active status for harq*/
+   uint32_t  drxUlUeActiveMaskForHarq;   /* variable is used to store the status about uplink active status for harq */
+   uint32_t  onDurationLen;          /* length of on duration which is received from ue cfg/recfg in form of ms and subms, informs about after how many slots on duration gets expire */
+   uint32_t  inActvTimerLen;         /* length of inActvTimer value received from ue cfg/recfg in form of ms, informs about after how many slots in active gets expire */
+   uint8_t   harqRttDlTimerLen;      /* length of harqRttDlTimer received from ue cfg/recfg in form of symbols, inform about after how many slots on the harq drx-HARQ-RTT-TimerDL expire */
+   uint8_t   harqRttUlTimerLen;      /* length of harqRttUlTimer received from ue cfg/recfg in form of symbols,informs about after how many slots on harq drx-HARQ-RTT-TimerUL expire*/
+   uint32_t  retransDlTimerLen;      /* length of retransDlTimer received from ue cfg/recfg in form of slot, informs about after how many slots on harq RetransmissionTimer dl timer expire*/
+   uint32_t  retransUlTimerLen;      /* length of retransUlTimer received from ue cfg/recfg in form of slot, informs about after how many slots on harq RetransmissionTimer ul timer expire*/
+   uint32_t  longCycleLen;           /* length of long Cycle value received from ue cfg/recfg in form of ms*/
    bool      longCycleToBeUsed;      /* long cycle should be used once the short cycle gets expires */
-   uint32_t  drxStartOffset;         /* drxStartOffset value recived from ue cfg/recfg */
-   bool      shortCyclePresent;      /* shortCyclePresent value recived from ue cfg/recfg */
-   uint32_t  shortCycleLen;          /* short Cycle value recived from ue cfg/recfg */
-   uint32_t  shortCycleTmrLen;       /* shortCycleTmr value recived from ue cfg/recfg */
-   uint32_t  drxSlotOffset;          /* drxSlotOffset value recived from ue cfg/recfg */
+   uint32_t  drxStartOffset;         /* length of drxStartOffset value received from ue cfg/recfg in form of ms, which helps in getting on duration start point*/
+   bool      shortCyclePresent;      /* set this value if shortCycle is Present */
+   uint32_t  shortCycleLen;          /* length of short Cycle value received from ue cfg/recfg in form of ms*/
+   uint32_t  shortCycleTmrLen;       /* value shortCycleTmr is the multiple of shortCycle which is received from ue cfg/recfg in form of integer*/
+   uint32_t  drxSlotOffset;          /* drxSlotOffset value received from ue cfg/recfg which is used to delay before starting the drx-onDuration*/
    uint32_t  onDurationStartIndex;   /* Index at which UE is stored in onDuration starts list */
    uint32_t  onDurationExpiryIndex;  /* Index at which UE is stored in onDuration expires in the list */ 
    uint32_t  inActvExpiryIndex;      /* Index at which UE is stored in inActvTimer expires in the list */
@@ -436,10 +442,10 @@ typedef struct  schDrxUeCb
    int32_t   onDurationStartDistance;/* Distance after how many slot on Duration Start tmr gets expire */
    int32_t   onDurationExpiryDistance;/* Distance after how many slot on Duration tmr gets expire */
    int32_t   inActiveTmrExpiryDistance;/* Distance after how many slot inActive tmr gets expire */
-   CmLList   *onDurationStartNodeInfo;
-   CmLList   *onDurationExpiryNodeInfo;
-   CmLList   *inActvTimerExpiryNodeInfo;
-   CmLList   *shortCycleTmrExpiryNodeInfo;
+   CmLList   *onDurationStartNodeInfo; /* Node present in on duration start list*/
+   CmLList   *onDurationExpiryNodeInfo;/* Node present in on duration exp list*/
+   CmLList   *inActvTimerExpiryNodeInfo; /* Node present in in active exp list*/
+   CmLList   *shortCycleTmrExpiryNodeInfo; /* Node present in short cycle exp list*/
 }SchDrxUeCb;
 #endif
 /**
@@ -534,7 +540,7 @@ typedef struct schCellCb
    uint16_t      cellId;                            /*!< Cell ID */
    Inst          instIdx;                           /*!< Index of the scheduler instance */
    Inst          macInst;                           /*!< Index of the MAC instance */
-   uint8_t       numSlots;                          /*!< Number of slots in current frame */
+   uint16_t       numSlots;                          /*!< Number of slots in current frame */
    SlotTimingInfo   slotInfo;                          /*!< SFN, Slot info being processed*/
    SchDlSlotInfo **schDlSlotInfo;                   /*!< SCH resource allocations in DL */
    SchUlSlotInfo **schUlSlotInfo;                   /*!< SCH resource allocations in UL */