UE_CTXT_MOD
}UeCtxtActionType;
-typedef struct cellCfgParams
+/** F1AP Msg IE **/
+typedef struct f1setupRsp
{
- NrEcgi nrEcgi; /* ECGI */
- uint16_t nrPci; /* PCI */
- uint16_t fiveGsTac; /* 5gSTac */
- Plmn plmn[MAX_PLMN]; /* List of serving PLMN IDs */
- uint32_t maxUe; /* max UE per slot */
-}CellCfgParams;
+ uint32_t transId; /* Uniquely identify transaction */
+ char cuName[CU_DU_NAME_LEN_MAX]; /* CU Name */
+ F1RrcVersion rrcVersion; /* RRC version */
+}F1SetupRsp;
+
+typedef struct f1DlRrcMsg
+{
+ uint32_t gnbDuUeF1apId;
+ uint32_t gnbCuUeF1apId;
+ uint8_t srbId;
+ bool execDup;
+ bool deliveryStatRpt;
+ uint16_t rrcMsgSize;
+ uint8_t *rrcMsgPdu;
+}F1DlRrcMsg;
+
+typedef struct gtpTnlCfg
+{
+ uint32_t ulTnlAddress; /* remote Address */
+ uint32_t dlTnlAddress; /* local Address */
+ uint32_t teId;
+}GtpTnlCfg;
+
+typedef struct upTnlCfg
+{
+ ConfigType configType;
+ uint8_t cellId;
+ uint8_t ueIdx;
+ uint8_t drbId;
+ GtpTnlCfg *tnlCfg1; /* Tunnel 1 */
+ GtpTnlCfg *tnlCfg2; /* Tunnel 2 */
+}UpTnlCfg;
typedef struct duUeCfg
{
+ void *cellGrpCfg;
+ void *ueNrCapability;
uint8_t numRlcLcs; /* Rlc Ue Cfg */
RlcBearerCfg rlcLcCfg[MAX_NUM_LC];
uint8_t numMacLcs; /* Mac Ue Cfg */
LcCfg macLcCfg[MAX_NUM_LC];
- MaxAggrBitRate *maxAggrBitRate;
+ AmbrCfg *ambrCfg;
+ uint8_t numDrb;
+ UpTnlCfg upTnlInfo[MAX_NUM_DRB]; /* User plane TNL Info*/
}DuUeCfg;
-typedef struct ueContextSetup
+typedef struct f1UeContextSetup
{
UeCtxtActionType actionType;
- uint8_t cellIdx;
- void *cellGrpCfg;
- uint16_t rrcMsgLen;
- uint8_t *rrcMsg;
- bool deliveryStaReq;
- DuUeCfg duUeCfg; /* Du Ue Cfg */
-}UeContextSetupDb;
+ uint8_t cellIdx;
+ DuUeCfg duUeCfg;
+ bool dlRrcMsgPres;
+ F1DlRrcMsg *dlRrcMsg;
+}F1UeContextSetupDb;
+
+typedef struct cellCfgParams
+{
+ NrEcgi nrEcgi; /* ECGI */
+ uint16_t nrPci; /* PCI */
+ uint16_t fiveGsTac; /* 5gSTac */
+ Plmn plmn[MAX_PLMN]; /* List of serving PLMN IDs */
+ uint32_t maxUe; /* max UE per slot */
+}CellCfgParams;
typedef struct duUeCb
{
+ F1UeContextSetupDb *f1UeDb;
uint16_t crnti;
uint32_t gnbDuUeF1apId; /* GNB DU UE F1AP ID */
uint32_t gnbCuUeF1apId; /* GNB CU UE F1AP ID */
UeState ueState; /* UE Active/ Ue Inactive state */
MacUeCfg macUeCfg; /* Mac Ue Cfg */
RlcUeCfg rlcUeCfg; /* Rlc Ue Cfg */
- UeContextSetupDb *f1UeDb;
}DuUeCb;
typedef struct duCellCb
CellCfgParams cellInfo; /* Cell info */
/* pointer to store the address of macCellCfg params used to send du-app to MAC */
MacCellCfg *duMacCellCfg;
- bool firstSlotIndRcvd;
CellStatus cellStatus; /* Cell status */
uint32_t numActvUes; /* Total Active UEs */
DuUeCb ueCb[MAX_NUM_UE]; /* UE CONTEXT */
DuCellCb* actvCellLst[MAX_NUM_CELL]; /* List of cells activated/to be activated of type DuCellCb */
uint32_t numUe; /* current number of UEs */
UeCcchCtxt ueCcchCtxt[MAX_NUM_UE]; /* mapping of gnbDuUeF1apId to CRNTI required for CCCH processing*/
+ uint8_t numDrb; /* current number of DRbs*/
+ UpTnlCfg* upTnlCfg[MAX_NUM_DRB]; /* tunnel info for every Drb */
}DuCb;
uint8_t duHdlEgtpCfgComplete(CmStatus cfm);
uint8_t duSendEgtpSrvOpenReq();
uint8_t duHdlEgtpSrvOpenComplete(CmStatus cfm);
-uint8_t duSendEgtpTnlMgmtReq(uint8_t action, uint32_t lclTeid, uint32_t remTeid);
-uint8_t duHdlEgtpTnlMgmtCfm(EgtpTnlEvt tnlEvtCfm);
-uint8_t duSendEgtpTestData();
+uint8_t duSendEgtpTnlMgmtReq(uint8_t action, uint32_t teIdMod, GtpTnlCfg *tnlInfo);
uint8_t duSendEgtpDatInd(Buffer *mBuf);
uint8_t duHdlSchCfgComplete(Pst *pst, RgMngmt *cfm);
-uint8_t duBuildAndSendMacCellStartReq();
-uint8_t duBuildAndSendMacCellStopReq();
+uint8_t duBuildAndSendMacCellStart();
+uint8_t duBuildAndSendMacCellStop();
#endif
/**********************************************************************