<JIRA ID: ODUHIGH-390 : Ul throughput per SNSSAI (KPI)>
[o-du/l2.git] / src / 5gnrrlc / rlc_utils.h
index 092dcd6..2bb5fba 100755 (executable)
@@ -39,6 +39,7 @@ extern "C" {
 #endif /* __cplusplus */
 
 #include "du_log.h"
+#include "du_app_rlc_inf.h"
 \f 
 
 #define EKWxxx 1
@@ -1725,13 +1726,15 @@ typedef struct rlcTptPerSnssai
 {
    Snssai   *snssai;
    uint64_t dataVol;
+   double   tpt;
 }RlcTptPerSnssai;
 
 
 typedef struct rlcSnssaiTputInfo
 {
    CmTimer       snssaiThptTmr;                   /* Throughput Timer */
-   CmLListCp     *tputPerSnssaiList; 
+   CmLListCp     *dlTputPerSnssaiList; 
+   CmLListCp     *ulTputPerSnssaiList;
 }RlcSnssaiTputInfo;
 
 typedef struct rlcUeTputInfo
@@ -1786,6 +1789,7 @@ typedef struct rlcCb
 
 RlcCb *rlcCb[MAX_RLC_INSTANCES];   /*!< RLC global control block */
 
+CmLListCp *arrTputPerSnssai[DIR_BOTH]; /*Stores the address of Througput LL*/
 /****************************************************************************
  *                      Declarations
  ***************************************************************************/
@@ -1807,9 +1811,12 @@ uint8_t  rlcUeDeleteTmrExpiry(PTR cb);
 
 void rlcSnssaiThptTmrExpiry(PTR cb);
 RlcTptPerSnssai* rlcHandleSnssaiTputlist(RlcCb *gCb, Snssai *snssai,\
-                                  RlcSnssaiActionType action);
-void rlcCalculateTputPerSnssai(CmLListCp *snssaiList);
-void rlcDelTputSnssaiList(RlcCb *gCb);
+                                  RlcSnssaiActionType action, Direction dir);
+uint8_t rlcCalculateTputPerSnssai(CmLListCp *snssaiList, Direction dir);
+uint8_t rlcDelTputSnssaiList(RlcCb *gCb, Direction dir);
+uint8_t BuildSliceReportToDu(uint8_t snssaiCnt);
+bool rlcFindSliceEntry(uint32_t snssaiVal, uint8_t *snssaiIdx,\
+                      SlicePmList *sliceStats);
 
 #ifdef LTE_L2_MEAS
 Void rlcLmmSendAlarm ARGS (( RlcCb *gCb,