MME2 changes - Propped commits from openmme/paging branch. Added scripts
for code gen
Change-Id: Ie55032217232214ac8544ca76ea34335205329e4
diff --git a/include/mme-app/contextManager/bearerContextManager.h b/include/mme-app/contextManager/bearerContextManager.h
new file mode 100644
index 0000000..5f33047
--- /dev/null
+++ b/include/mme-app/contextManager/bearerContextManager.h
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2019-present, Infosys Limited.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __BearerContextManager__
+#define __BearerContextManager__
+/******************************************************
+* bearerContextManager.h
+ * This is an auto generated file.
+ * Please do not edit this file.
+ * All edits to be made through template source file
+ * <TOP-DIR/scripts/SMCodeGen/templates/ctxtManagerTmpls/blockPoolManager.h.tt>
+ ***************************************/
+#include "memPoolManager.h"
+
+namespace mme
+{
+ class BearerContext;
+
+ class BearerContextManager
+ {
+ public:
+ /****************************************
+ * BearerContextManager
+ * constructor
+ ****************************************/
+ BearerContextManager(int numOfBlocks);
+
+ /****************************************
+ * BearerContextManager
+ * Destructor
+ ****************************************/
+ ~BearerContextManager();
+
+ /******************************************
+ * allocateBearerContext
+ * allocate BearerContext data block
+ ******************************************/
+ BearerContext* allocateBearerContext();
+
+ /******************************************
+ * deallocateBearerContext
+ * deallocate a BearerContext data block
+ ******************************************/
+ void deallocateBearerContext(BearerContext* BearerContextp );
+
+ private:
+ cmn::memPool::MemPoolManager<BearerContext> poolManager_m;
+ };
+};
+
+#endif
+
+
diff --git a/include/mme-app/contextManager/dataBlocks.h b/include/mme-app/contextManager/dataBlocks.h
new file mode 100644
index 0000000..b3b4809
--- /dev/null
+++ b/include/mme-app/contextManager/dataBlocks.h
@@ -0,0 +1,962 @@
+/*
+ * Copyright (c) 2019, Infosys Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef DGM_BLOCKSTRUCTURES_H
+#define DGM_BLOCKSTRUCTURES_H
+/**************************************
+*
+* This is an auto generated file.
+ * Please do not edit this file.
+ * All edits to be made through template source file
+ * <TOP-DIR/scripts/SMCodeGen/templates/ctxtManagerTmpls/dataBlocks.h.tt>
+ ***************************************/
+#include "structs.h"
+#include "permDataBlock.h"
+#include "tempDataBlock.h"
+#include <utils/mmeCauseTypes.h>
+
+namespace mme
+{
+ class UEContext;
+ class MmContext;
+ class SessionContext;
+ class BearerContext;
+ class MmeProcedureCtxt;
+ class MmeDetachProcedureCtxt;
+ class MmeSvcReqProcedureCtxt;
+ class MmeTauProcedureCtxt;
+
+ class UEContext:public SM::PermDataBlock
+ {
+ public:
+
+ /****************************************
+ * UEContext
+ * constructor
+ ****************************************/
+ UEContext();
+
+ /****************************************
+ * ~UEContext
+ * destructor
+ ****************************************/
+ ~UEContext();
+
+ /****************************************
+ * setenbFd
+ * set enbFd to UEContext
+ ****************************************/
+ void setEnbFd( int enbFd_i );
+
+ /****************************************
+ * getenbFd
+ * get enbFd from UEContext
+ ****************************************/
+ int getEnbFd();
+
+ /****************************************
+ * sets1apEnbUeId
+ * set s1apEnbUeId to UEContext
+ ****************************************/
+ void setS1apEnbUeId( int s1apEnbUeId_i );
+
+ /****************************************
+ * gets1apEnbUeId
+ * get s1apEnbUeId from UEContext
+ ****************************************/
+ int getS1apEnbUeId();
+
+ /****************************************
+ * setsubscriptionStatus
+ * set subscriptionStatus to UEContext
+ ****************************************/
+ void setSubscriptionStatus( int subscriptionStatus_i );
+
+ /****************************************
+ * getsubscriptionStatus
+ * get subscriptionStatus from UEContext
+ ****************************************/
+ int getSubscriptionStatus();
+
+ /****************************************
+ * setnetAccessMode
+ * set netAccessMode to UEContext
+ ****************************************/
+ void setNetAccessMode( int netAccessMode_i );
+
+ /****************************************
+ * getnetAccessMode
+ * get netAccessMode from UEContext
+ ****************************************/
+ int getNetAccessMode();
+
+ /****************************************
+ * setcontextID
+ * set contextID to UEContext
+ ****************************************/
+ void setContextID( uint32_t contextID_i );
+
+ /****************************************
+ * getcontextID
+ * get contextID from UEContext
+ ****************************************/
+ uint32_t getContextID();
+
+ /****************************************
+ * setrauTauTimer
+ * set rauTauTimer to UEContext
+ ****************************************/
+ void setRauTauTimer( unsigned int rauTauTimer_i );
+
+ /****************************************
+ * getrauTauTimer
+ * get rauTauTimer from UEContext
+ ****************************************/
+ unsigned int getRauTauTimer();
+
+ /****************************************
+ * setaccessRestrictionData
+ * set accessRestrictionData to UEContext
+ ****************************************/
+ void setAccessRestrictionData( unsigned int accessRestrictionData_i );
+
+ /****************************************
+ * getaccessRestrictionData
+ * get accessRestrictionData from UEContext
+ ****************************************/
+ unsigned int getAccessRestrictionData();
+
+ /****************************************
+ * setimsi
+ * set imsi to UEContext
+ ****************************************/
+ void setImsi( const DigitRegister15& imsi_i );
+
+ /****************************************
+ * getimsi
+ * get imsi from UEContext
+ ****************************************/
+ const DigitRegister15& getImsi()const;
+
+ /****************************************
+ * setmsisdn
+ * set msisdn to UEContext
+ ****************************************/
+ void setMsisdn( const DigitRegister15& msisdn_i );
+
+ /****************************************
+ * getmsisdn
+ * get msisdn from UEContext
+ ****************************************/
+ const DigitRegister15& getMsisdn()const;
+
+ /****************************************
+ * setdwnLnkSeqNo
+ * set dwnLnkSeqNo to UEContext
+ ****************************************/
+ void setDwnLnkSeqNo( unsigned short dwnLnkSeqNo_i );
+
+ /****************************************
+ * getdwnLnkSeqNo
+ * get dwnLnkSeqNo from UEContext
+ ****************************************/
+ unsigned short getDwnLnkSeqNo();
+
+ /****************************************
+ * setupLnkSeqNo
+ * set upLnkSeqNo to UEContext
+ ****************************************/
+ void setUpLnkSeqNo( unsigned short upLnkSeqNo_i );
+
+ /****************************************
+ * getupLnkSeqNo
+ * get upLnkSeqNo from UEContext
+ ****************************************/
+ unsigned short getUpLnkSeqNo();
+
+ /****************************************
+ * setueState
+ * set ueState to UEContext
+ ****************************************/
+ void setUeState( UE_State_e ueState_i );
+
+ /****************************************
+ * getueState
+ * get ueState from UEContext
+ ****************************************/
+ UE_State_e getUeState();
+
+ /****************************************
+ * settai
+ * set tai to UEContext
+ ****************************************/
+ void setTai( const Tai& tai_i );
+
+ /****************************************
+ * gettai
+ * get tai from UEContext
+ ****************************************/
+ const Tai& getTai()const;
+
+ /****************************************
+ * setutranCgi
+ * set utranCgi to UEContext
+ ****************************************/
+ void setUtranCgi( const Cgi& utranCgi_i );
+
+ /****************************************
+ * getutranCgi
+ * get utranCgi from UEContext
+ ****************************************/
+ const Cgi& getUtranCgi()const;
+
+ /****************************************
+ * setmsNetCapab
+ * set msNetCapab to UEContext
+ ****************************************/
+ void setMsNetCapab( const Ms_net_capab& msNetCapab_i );
+
+ /****************************************
+ * getmsNetCapab
+ * get msNetCapab from UEContext
+ ****************************************/
+ const Ms_net_capab& getMsNetCapab()const;
+
+ /****************************************
+ * setueNetCapab
+ * set ueNetCapab to UEContext
+ ****************************************/
+ void setUeNetCapab( const Ue_net_capab& ueNetCapab_i );
+
+ /****************************************
+ * getueNetCapab
+ * get ueNetCapab from UEContext
+ ****************************************/
+ const Ue_net_capab& getUeNetCapab()const;
+
+ /****************************************
+ * setueSecInfo
+ * set ueSecInfo to UEContext
+ ****************************************/
+ void setUeSecInfo( const Secinfo& ueSecInfo_i );
+
+ /****************************************
+ * getueSecInfo
+ * get ueSecInfo from UEContext
+ ****************************************/
+ const Secinfo& getUeSecInfo()const;
+
+ /****************************************
+ * setambr
+ * set ambr to UEContext
+ ****************************************/
+ void setAmbr( const Ambr& ambr_i );
+
+ /****************************************
+ * getambr
+ * get ambr from UEContext
+ ****************************************/
+ const Ambr& getAmbr()const;
+
+ /****************************************
+ * setaiaSecInfo
+ * set aiaSecInfo to UEContext
+ ****************************************/
+ void setAiaSecInfo( const E_utran_sec_vector& aiaSecInfo_i );
+
+ /****************************************
+ * getaiaSecInfo
+ * get aiaSecInfo from UEContext
+ ****************************************/
+ const E_utran_sec_vector& getAiaSecInfo()const;
+
+ /****************************************
+ * setmTmsi
+ * set mTmsi to UEContext
+ ****************************************/
+ void setMtmsi( uint32_t mTmsi );
+
+ /****************************************
+ * getaiaSecInfo
+ * get aiaSecInfo from UEContext
+ ****************************************/
+ uint32_t getMtmsi();
+
+ /****************************************
+ * setMmContext
+ * set MmContext to UEContext
+ ****************************************/
+ void setMmContext( MmContext* MmContextp ) ;
+
+ /****************************************
+ * getMmContext
+ * get MmContext to UEContext
+ ****************************************/
+ MmContext* getMmContext();
+
+ /****************************************
+ * setSessionContext
+ * set SessionContext to UEContext
+ ****************************************/
+ void setSessionContext( SessionContext* SessionContextp ) ;
+
+ /****************************************
+ * getSessionContext
+ * get SessionContext to UEContext
+ ****************************************/
+ SessionContext* getSessionContext();
+
+
+ private:
+
+ // DataName
+ int enbFd_m;
+
+ // DataName
+ int s1apEnbUeId_m;
+
+ // DataName
+ int subscriptionStatus_m;
+
+ // DataName
+ int netAccessMode_m;
+
+ // DataName
+ uint32_t contextID_m;
+
+ // DataName
+ unsigned int rauTauTimer_m;
+
+ // DataName
+ unsigned int accessRestrictionData_m;
+
+ // DataName
+ DigitRegister15 imsi_m;
+
+ // DataName
+ DigitRegister15 msisdn_m;
+
+ // DataName
+ unsigned short dwnLnkSeqNo_m;
+
+ // DataName
+ unsigned short upLnkSeqNo_m;
+
+ // DataName
+ UE_State_e ueState_m;
+
+ // DataName
+ Tai tai_m;
+
+ // DataName
+ Cgi utranCgi_m;
+
+ // DataName
+ Ms_net_capab msNetCapab_m;
+
+ // DataName
+ Ue_net_capab ueNetCapab_m;
+
+ // DataName
+ Secinfo ueSecInfo_m;
+
+ // DataName
+ Ambr ambr_m;
+
+ // DataName
+ E_utran_sec_vector aiaSecInfo_m;
+
+ // DataName
+ uint32_t mTmsi_m;
+
+ // MmContext
+ MmContext* MmContext_mp;
+
+ // SessionContext
+ SessionContext* SessionContext_mp;
+
+ };
+
+ class MmContext:public SM::PermDataBlock
+ {
+ public:
+
+ /****************************************
+ * MmContext
+ * constructor
+ ****************************************/
+ MmContext();
+
+ /****************************************
+ * ~MmContext
+ * destructor
+ ****************************************/
+ ~MmContext();
+
+ /****************************************
+ * setmmState
+ * set mmState to MmContext
+ ****************************************/
+ void setMmState(EmmState mmState_i );
+
+ /****************************************
+ * getmmState
+ * get mmState from MmContext
+ ****************************************/
+ EmmState getMmState();
+
+
+ private:
+
+ // DataName
+ EmmState mmState_m;
+
+
+ };
+
+ class SessionContext:public SM::PermDataBlock
+ {
+ public:
+
+ /****************************************
+ * SessionContext
+ * constructor
+ ****************************************/
+ SessionContext();
+
+ /****************************************
+ * ~SessionContext
+ * destructor
+ ****************************************/
+ ~SessionContext();
+
+ /****************************************
+ * setsessionId
+ * set sessionId to SessionContext
+ ****************************************/
+ void setSessionId( uint8_t sessionId_i );
+
+ /****************************************
+ * getsessionId
+ * get sessionId from SessionContext
+ ****************************************/
+ uint8_t getSessionId();
+
+ /****************************************
+ * sets11SgwCtrlFteid
+ * set s11SgwCtrlFteid to SessionContext
+ ****************************************/
+ void setS11SgwCtrlFteid( const Fteid& s11SgwCtrlFteid_i );
+
+ /****************************************
+ * gets11SgwCtrlFteid
+ * get s11SgwCtrlFteid from SessionContext
+ ****************************************/
+ const Fteid& getS11SgwCtrlFteid()const;
+
+ /****************************************
+ * sets5S8PgwCtrlFteid
+ * set s5S8PgwCtrlFteid to SessionContext
+ ****************************************/
+ void setS5S8PgwCtrlFteid( const Fteid& s5S8PgwCtrlFteid_i );
+
+ /****************************************
+ * gets5S8PgwCtrlFteid
+ * get s5S8PgwCtrlFteid from SessionContext
+ ****************************************/
+ const Fteid& getS5S8PgwCtrlFteid()const;
+
+ /****************************************
+ * setpdnAddr
+ * set pdnAddr to SessionContext
+ ****************************************/
+ void setPdnAddr( const Paa& pdnAddr_i );
+
+ /****************************************
+ * getpdnAddr
+ * get pdnAddr from SessionContext
+ ****************************************/
+ const Paa& getPdnAddr()const;
+
+ /****************************************
+ * setaccessPtName
+ * set accessPtName to SessionContext
+ ****************************************/
+ void setAccessPtName( const Apn_name& accessPtName_i );
+
+ /****************************************
+ * getaccessPtName
+ * get accessPtName from SessionContext
+ ****************************************/
+ const Apn_name& getAccessPtName()const;
+
+ /****************************************
+ * geteRabId
+ * get eRabId from SessionContext
+ ****************************************/
+ unsigned short getErabId();
+
+ /****************************************
+ * setapnConfigProfileCtxId
+ * set apnConfigProfileCtxId to SessionContext
+ ****************************************/
+ void setApnConfigProfileCtxId( unsigned int apnConfigProfileCtxId_i );
+
+ /****************************************
+ * getapnConfigProfileCtxId
+ * get apnConfigProfileCtxId from SessionContext
+ ****************************************/
+ unsigned int getApnConfigProfileCtxId();
+
+ /****************************************
+ * setpti
+ * set pti to SessionContext
+ ****************************************/
+ void setPti( uint8_t pti_i );
+
+ /****************************************
+ * getpti
+ * get pti from SessionContext
+ ****************************************/
+ uint8_t getPti();
+
+ /****************************************
+ * setBearerContext
+ * set BearerContext to SessionContext
+ ****************************************/
+ void setBearerContext( BearerContext* BearerContextp ) ;
+
+ /****************************************
+ * getBearerContext
+ * get BearerContext to SessionContext
+ ****************************************/
+ BearerContext* getBearerContext();
+
+
+ private:
+
+ // DataName
+ uint8_t sessionId_m;
+
+ // DataName
+ Fteid s11SgwCtrlFteid_m;
+
+ // DataName
+ Fteid s5S8PgwCtrlFteid_m;
+
+ // DataName
+ Paa pdnAddr_m;
+
+ // DataName
+ Apn_name accessPtName_m;
+
+ // DataName
+ unsigned int apnConfigProfileCtxId_m;
+
+ // DataName
+ uint8_t pti_m;
+
+ // BearerContext
+ BearerContext* BearerContext_mp;
+
+ };
+
+ class BearerContext:public SM::PermDataBlock
+ {
+ public:
+
+ /****************************************
+ * BearerContext
+ * constructor
+ ****************************************/
+ BearerContext();
+
+ /****************************************
+ * ~BearerContext
+ * destructor
+ ****************************************/
+ ~BearerContext();
+
+ /****************************************
+ * sets1uSgwUserFteid
+ * set s1uSgwUserFteid to BearerContext
+ ****************************************/
+ void setS1uSgwUserFteid( const Fteid& s1uSgwUserFteid_i );
+
+ /****************************************
+ * gets1uSgwUserFteid
+ * get s1uSgwUserFteid from BearerContext
+ ****************************************/
+ const Fteid& getS1uSgwUserFteid()const;
+
+ /****************************************
+ * sets5S8PgwUserFteid
+ * set s5S8PgwUserFteid to BearerContext
+ ****************************************/
+ void setS5S8PgwUserFteid( const Fteid& s5S8PgwUserFteid_i );
+
+ /****************************************
+ * gets5S8PgwUserFteid
+ * get s5S8PgwUserFteid from BearerContext
+ ****************************************/
+ const Fteid& getS5S8PgwUserFteid()const;
+
+ /****************************************
+ * sets1uEnbUserFteid
+ * set s1uEnbUserFteid to BearerContext
+ ****************************************/
+ void setS1uEnbUserFteid( const Fteid& s1uEnbUserFteid_i );
+
+ /****************************************
+ * gets1uEnbUserFteid
+ * get s1uEnbUserFteid from BearerContext
+ ****************************************/
+ const Fteid& getS1uEnbUserFteid()const;
+
+ /****************************************
+ * setbearerId
+ * set bearerId to BearerContext
+ ****************************************/
+ void setBearerId( unsigned char bearerId_i );
+
+ /****************************************
+ * getbearerId
+ * get bearerId from BearerContext
+ ****************************************/
+ unsigned char getBearerId();
+
+
+
+ private:
+
+ // DataName
+ Fteid s1uSgwUserFteid_m;
+
+ // DataName
+ Fteid s5S8PgwUserFteid_m;
+
+ // DataName
+ Fteid s1uEnbUserFteid_m;
+
+ // DataName
+ unsigned char bearerId_m;
+
+
+ };
+
+ class MmeProcedureCtxt:public SM::TempDataBlock
+ {
+ public:
+
+ /****************************************
+ * MmeProcedureCtxt
+ * constructor
+ ****************************************/
+ MmeProcedureCtxt();
+
+ /****************************************
+ * ~MmeProcedureCtxt
+ * destructor
+ ****************************************/
+ ~MmeProcedureCtxt();
+
+ /****************************************
+ * setctxtType
+ * set ctxtType to MmeProcedureCtxt
+ ****************************************/
+ void setCtxtType( ProcedureType ctxtType_i );
+
+ /****************************************
+ * getctxtType
+ * get ctxtType from MmeProcedureCtxt
+ ****************************************/
+ ProcedureType getCtxtType();
+
+ /****************************************
+ * setesmInfoTxRequired
+ * set esmInfoTxRequired to MmeProcedureCtxt
+ ****************************************/
+ void setEsmInfoTxRequired( bool esmInfoTxRequired_i );
+
+ /****************************************
+ * getesmInfoTxRequired
+ * get esmInfoTxRequired from MmeProcedureCtxt
+ ****************************************/
+ bool getEsmInfoTxRequired();
+
+ /****************************************
+ * setpti
+ * set pti to MmeProcedureCtxt
+ ****************************************/
+ void setPti( uint8_t pti_i );
+
+ /****************************************
+ * getpti
+ * get pti from MmeProcedureCtxt
+ ****************************************/
+ uint8_t getPti();
+
+ /****************************************
+ * setpcoOptions
+ * set pcoOptions to MmeProcedureCtxt
+ ****************************************/
+ void setPcoOptions(const unsigned short int* pco_options_i);
+
+ /****************************************
+ * getpcoOptions
+ * get pcoOptions from MmeProcedureCtxt
+ ****************************************/
+ const unsigned short int* getPcoOptions()const;
+
+ /****************************************
+ * setattachType
+ * set attachType to MmeProcedureCtxt
+ ****************************************/
+ void setAttachType( AttachType attachType_i );
+
+ /****************************************
+ * getattachType
+ * get attachType from MmeProcedureCtxt
+ ****************************************/
+ AttachType getAttachType();
+
+ /****************************************
+ * setMmeErrorCause
+ * set mmeErrorCause to MmeProcedureCtxt
+ *******************************************/
+ void setMmeErrorCause( MmeErrorCause mmeErrorCause_i );
+
+ /*******************************************
+ * getMmeErrorCause
+ * get mmeErrorCause from MmeProcedureCtxt
+ *********************************************/
+ MmeErrorCause getMmeErrorCause();
+
+
+ private:
+
+ // DataName
+ ProcedureType ctxtType_m;
+
+ // DataName
+ MmeErrorCause mmeErrorCause_m;
+
+ //DataName
+ AttachType attachType_m;
+
+ //DataName
+ unsigned short int pcoOptions_m[10];
+
+ // DataName
+ uint8_t pti_m;
+
+ //DataName
+ bool esmInfoTxRequired_m;
+
+ };
+
+ class MmeDetachProcedureCtxt:public MmeProcedureCtxt
+ {
+ public:
+
+ /****************************************
+ * MmeDetachProcedureCtxt
+ * constructor
+ ****************************************/
+ MmeDetachProcedureCtxt();
+
+ /****************************************
+ * ~MmeDetachProcedureCtxt
+ * destructor
+ ****************************************/
+ ~MmeDetachProcedureCtxt();
+
+ /****************************************
+ * setdetachType
+ * set detachType to MmeDetachProcedureCtxt
+ ****************************************/
+ void setDetachType(DetachType detachType_i );
+
+ /****************************************
+ * getdetachType
+ * get detachType from MmeDetachProcedureCtxt
+ ****************************************/
+ DetachType getDetachType();
+
+ /****************************************
+ * setcancellationType
+ * set cancellationType to MmeProcedureCtxt
+ ****************************************/
+ void setCancellationType(CancellationType cancellationType_i );
+
+ /****************************************
+ * getcancellationType
+ * get cancellationType from MmeProcedureCtxt
+ ****************************************/
+ CancellationType getCancellationType();
+
+ private:
+
+ // DataName
+ DetachType detachType_m;
+
+ //DataName
+ CancellationType cancellationType_m;
+ };
+
+
+
+ class MmeSvcReqProcedureCtxt:public MmeProcedureCtxt
+ {
+ public:
+ /****************************************
+ * MmeSvcReqProcedureCtxt
+ * constructor
+ ****************************************/
+ MmeSvcReqProcedureCtxt();
+
+ /****************************************
+ * ~MmeSvcReqProcedureCtxt
+ * destructor
+ ****************************************/
+ ~MmeSvcReqProcedureCtxt();
+
+ /****************************************
+ * setseqNo
+ * set seqNo to MmeSvcReqProcedureCtxt
+ ****************************************/
+ void setDdnSeqNo( uint32_t ddnSeqNum_i );
+
+ /****************************************
+ * getseqNo
+ * get seqNo from MmeSvcReqProcedureCtxt
+ ****************************************/
+ uint32_t getDdnSeqNo();
+
+ /**************************************************
+ * setPagingTrigger
+ * set pagingTrigger to MmeSvcReqProcedureCtxt
+ **************************************************/
+ void setPagingTrigger( PagingTrigger pagingTrigger_i );
+
+ /****************************************
+ * getPagingTrigger
+ * get pagingTrigger from MmeSvcReqProcedureCtxt
+ ****************************************/
+ PagingTrigger getPagingTrigger();
+
+ /****************************************
+ * setEpsBearerId
+ * set epsBearerId to MmeSvcReqProcedureCtxt
+ ****************************************/
+ void setEpsBearerId( unsigned char epsBearerId_i );
+
+ /****************************************
+ * getEpsBearerId
+ * get epsBearerId from MmeSvcReqProcedureCtxt
+ ****************************************/
+ unsigned char getEpsBearerId();
+
+ /****************************************
+ * setArp
+ * set arp to MmeSvcReqProcedureCtxt
+ ****************************************/
+ void setArp( const Arp& arp_i );
+
+ /****************************************
+ * getArp
+ * get arp from MmeSvcReqProcedureCtxt
+ ****************************************/
+ const Arp& getArp()const;
+
+
+ private:
+ // DataName
+ PagingTrigger pagingTrigger_m;
+
+ // DataName
+ unsigned char epsBearerId_m;
+
+ // DataName
+ Arp arp_m;
+
+ // DataName
+ uint32_t ddnSeqNum_m;
+
+ };
+
+ class MmeTauProcedureCtxt:public MmeProcedureCtxt
+ {
+ public:
+ /****************************************
+ * MmeTauProcedureCtxt
+ * constructor
+ ****************************************/
+ MmeTauProcedureCtxt();
+
+ /****************************************
+ * ~MmeTauProcedureCtxt
+ * destructor
+ ****************************************/
+ ~MmeTauProcedureCtxt();
+
+ /****************************************
+ * sets1apEnbUeId
+ * set s1apEnbUeId to MmeTauProcedureCtxt
+ ****************************************/
+ void setS1apEnbUeId( int s1apEnbUeId_i );
+
+ /****************************************
+ * gets1apEnbUeId
+ * get s1apEnbUeId from MmeTauProcedureCtxt
+ ****************************************/
+ int getS1apEnbUeId();
+
+ /****************************************
+ * settai
+ * set tai to MmeTauProcedureCtxt
+ ****************************************/
+ void setTai( const Tai& tai_i );
+
+ /****************************************
+ * gettai
+ * get tai from MmeTauProcedureCtxt
+ ****************************************/
+ const Tai& getTai()const;
+
+ /****************************************
+ * setenbFd
+ * set enbFd to MmeTauProcedureCtxt
+ ****************************************/
+ void setEnbFd( int enbFd_i );
+
+ /****************************************
+ * getenbFd
+ * get enbFd from MmeTauProcedureCtxt
+ ****************************************/
+ int getEnbFd();
+
+
+
+ private:
+ int s1apEnbUeId_m;
+ Tai tai_m;
+ int enbFd_m;
+
+ };
+
+} // mme
+#endif
diff --git a/include/mme-app/contextManager/mmContextManager.h b/include/mme-app/contextManager/mmContextManager.h
new file mode 100644
index 0000000..cdf2113
--- /dev/null
+++ b/include/mme-app/contextManager/mmContextManager.h
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2019-present, Infosys Limited.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __MmContextManager__
+#define __MmContextManager__
+/******************************************************
+* mmContextManager.h
+ * This is an auto generated file.
+ * Please do not edit this file.
+ * All edits to be made through template source file
+ * <TOP-DIR/scripts/SMCodeGen/templates/ctxtManagerTmpls/blockPoolManager.h.tt>
+ ***************************************/
+#include "memPoolManager.h"
+
+namespace mme
+{
+ class MmContext;
+ class MmContextManager
+ {
+ public:
+ /****************************************
+ * MmContextManager
+ * constructor
+ ****************************************/
+ MmContextManager(int numOfBlocks);
+
+ /****************************************
+ * MmContextManager
+ * Destructor
+ ****************************************/
+ ~MmContextManager();
+
+ /******************************************
+ * allocateMmContext
+ * allocate MmContext data block
+ ******************************************/
+ MmContext* allocateMmContext();
+
+ /******************************************
+ * deallocateMmContext
+ * deallocate a MmContext data block
+ ******************************************/
+ void deallocateMmContext(MmContext* MmContextp );
+
+ private:
+ cmn::memPool::MemPoolManager<MmContext> poolManager_m;
+ };
+};
+
+#endif
+
+
diff --git a/include/mme-app/contextManager/mmeDetachProcedureCtxtManager.h b/include/mme-app/contextManager/mmeDetachProcedureCtxtManager.h
new file mode 100644
index 0000000..b7c3197
--- /dev/null
+++ b/include/mme-app/contextManager/mmeDetachProcedureCtxtManager.h
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2019, Infosys Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __MmeDetachProcedureCtxtManager__
+#define __MmeDetachProcedureCtxtManager__
+/******************************************************
+ * mmeDetachProcedureCtxtManager.h
+ * This is an auto generated file.
+ * Please do not edit this file.
+ * All edits to be made through template source file
+ * <TOP-DIR/scripts/SMCodeGen/templates/ctxtManagerTmpls/blockPoolManager.h.tt>
+ ***************************************/
+#include "memPoolManager.h"
+
+namespace mme
+{
+ class MmeDetachProcedureCtxt;
+ class MmeDetachProcedureCtxtManager
+ {
+ public:
+ /****************************************
+ * MmeDetachProcedureCtxtManager
+ * constructor
+ ****************************************/
+ MmeDetachProcedureCtxtManager(int numOfBlocks);
+
+ /****************************************
+ * MmeDetachProcedureCtxtManager
+ * Destructor
+ ****************************************/
+ ~MmeDetachProcedureCtxtManager();
+
+ /******************************************
+ * allocateMmeDetachProcedureCtxt
+ * allocate MmeDetachProcedureCtxt data block
+ ******************************************/
+ MmeDetachProcedureCtxt* allocateMmeDetachProcedureCtxt();
+
+ /******************************************
+ * deallocateMmeDetachProcedureCtxt
+ * deallocate a MmeDetachProcedureCtxt data block
+ ******************************************/
+ void deallocateMmeDetachProcedureCtxt(MmeDetachProcedureCtxt* MmeDetachProcedureCtxtp );
+
+ private:
+ cmn::memPool::MemPoolManager<MmeDetachProcedureCtxt> poolManager_m;
+ };
+};
+
+#endif
+
+
diff --git a/include/mme-app/contextManager/mmeProcedureCtxtManager.h b/include/mme-app/contextManager/mmeProcedureCtxtManager.h
new file mode 100644
index 0000000..c244fd4
--- /dev/null
+++ b/include/mme-app/contextManager/mmeProcedureCtxtManager.h
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2019-present, Infosys Limited.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __MmeProcedureCtxtManager__
+#define __MmeProcedureCtxtManager__
+/******************************************************
+* mmeProcedureCtxtManager.h
+ * This is an auto generated file.
+ * Please do not edit this file.
+ * All edits to be made through template source file
+ * <TOP-DIR/scripts/SMCodeGen/templates/ctxtManagerTmpls/blockPoolManager.h.tt>
+ ***************************************/
+#include "memPoolManager.h"
+
+namespace mme
+{
+ class MmeProcedureCtxt;
+ class MmeProcedureCtxtManager
+ {
+ public:
+ /****************************************
+ * MmeProcedureCtxtManager
+ * constructor
+ ****************************************/
+ MmeProcedureCtxtManager(int numOfBlocks);
+
+ /****************************************
+ * MmeProcedureCtxtManager
+ * Destructor
+ ****************************************/
+ ~MmeProcedureCtxtManager();
+
+ /******************************************
+ * allocateMmeProcedureCtxt
+ * allocate MmeProcedureCtxt data block
+ ******************************************/
+ MmeProcedureCtxt* allocateMmeProcedureCtxt();
+
+ /******************************************
+ * deallocateMmeProcedureCtxt
+ * deallocate a MmeProcedureCtxt data block
+ ******************************************/
+ void deallocateMmeProcedureCtxt(MmeProcedureCtxt* MmeProcedureCtxtp );
+
+ private:
+ cmn::memPool::MemPoolManager<MmeProcedureCtxt> poolManager_m;
+ };
+};
+
+#endif
+
+
diff --git a/include/mme-app/contextManager/mmeSvcReqProcedureCtxtManager.h b/include/mme-app/contextManager/mmeSvcReqProcedureCtxtManager.h
new file mode 100644
index 0000000..cd3e55a
--- /dev/null
+++ b/include/mme-app/contextManager/mmeSvcReqProcedureCtxtManager.h
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2019, Infosys Limited.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __MmeSvcReqProcedureCtxtManager__
+#define __MmeSvcReqProcedureCtxtManager__
+/******************************************************
+* mmeSvcReqProcedureCtxtManager.h
+ * This is an auto generated file.
+ * Please do not edit this file.
+ * All edits to be made through template source file
+ * <TOP-DIR/scripts/SMCodeGen/templates/ctxtManagerTmpls/blockPoolManager.h.tt>
+ ***************************************/
+#include "memPoolManager.h"
+
+namespace mme
+{
+ class MmeSvcReqProcedureCtxt;
+ class MmeSvcReqProcedureCtxtManager
+ {
+ public:
+ /****************************************
+ * MmeSvcReqProcedureCtxtManager
+ * constructor
+ ****************************************/
+ MmeSvcReqProcedureCtxtManager(int numOfBlocks);
+
+ /****************************************
+ * MmeSvcReqProcedureCtxtManager
+ * Destructor
+ ****************************************/
+ ~MmeSvcReqProcedureCtxtManager();
+
+ /******************************************
+ * allocateMmeSvcReqProcedureCtxt
+ * allocate MmeSvcReqProcedureCtxt data block
+ ******************************************/
+ MmeSvcReqProcedureCtxt* allocateMmeSvcReqProcedureCtxt();
+
+ /******************************************
+ * deallocateMmeSvcReqProcedureCtxt
+ * deallocate a MmeSvcReqProcedureCtxt data block
+ ******************************************/
+ void deallocateMmeSvcReqProcedureCtxt(MmeSvcReqProcedureCtxt* MmeSvcReqProcedureCtxtp );
+
+ private:
+ cmn::memPool::MemPoolManager<MmeSvcReqProcedureCtxt> poolManager_m;
+ };
+};
+
+#endif
+
+
diff --git a/include/mme-app/contextManager/mmeTauProcedureCtxtManager.h b/include/mme-app/contextManager/mmeTauProcedureCtxtManager.h
new file mode 100644
index 0000000..da46b7f
--- /dev/null
+++ b/include/mme-app/contextManager/mmeTauProcedureCtxtManager.h
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2019, Infosys Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __MmeTauProcedureCtxtManager__
+#define __MmeTauProcedureCtxtManager__
+/******************************************************
+ * MmeTauProcedureCtxtManager.h
+ * This is an auto generated file.
+ * Please do not edit this file.
+ * All edits to be made through template source file
+ * <TOP-DIR/scripts/SMCodeGen/templates/ctxtManagerTmpls/blockPoolManager.h.tt>
+ ***************************************/
+#include "memPoolManager.h"
+
+namespace mme
+{
+ class MmeTauProcedureCtxt;
+ class MmeTauProcedureCtxtManager
+ {
+ public:
+ /****************************************
+ * MmeTauProcedureCtxtManager
+ * constructor
+ ****************************************/
+ MmeTauProcedureCtxtManager(int numOfBlocks);
+
+ /****************************************
+ * MmeTauProcedureCtxtManager
+ * Destructor
+ ****************************************/
+ ~MmeTauProcedureCtxtManager();
+
+ /******************************************
+ * allocateMmeTauProcedureCtxt
+ * allocate MmeTauProcedureCtxt data block
+ ******************************************/
+ MmeTauProcedureCtxt* allocateMmeTauProcedureCtxt();
+
+ /******************************************
+ * deallocateMmeTauProcedureCtxt
+ * deallocate a MmeTauProcedureCtxt data block
+ ******************************************/
+ void deallocateMmeTauProcedureCtxt(MmeTauProcedureCtxt* MmeTauProcedureCtxtp );
+
+ private:
+ cmn::memPool::MemPoolManager<MmeTauProcedureCtxt> poolManager_m;
+ };
+};
+
+#endif
+
+
diff --git a/include/mme-app/contextManager/sessionContextManager.h b/include/mme-app/contextManager/sessionContextManager.h
new file mode 100644
index 0000000..7b55924
--- /dev/null
+++ b/include/mme-app/contextManager/sessionContextManager.h
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2019-present, Infosys Limited.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __SessionContextManager__
+#define __SessionContextManager__
+/******************************************************
+* sessionContextManager.h
+ * This is an auto generated file.
+ * Please do not edit this file.
+ * All edits to be made through template source file
+ * <TOP-DIR/scripts/SMCodeGen/templates/ctxtManagerTmpls/blockPoolManager.h.tt>
+ ***************************************/
+#include "memPoolManager.h"
+
+namespace mme
+{
+ class SessionContext;
+ class SessionContextManager
+ {
+ public:
+ /****************************************
+ * SessionContextManager
+ * constructor
+ ****************************************/
+ SessionContextManager(int numOfBlocks);
+
+ /****************************************
+ * SessionContextManager
+ * Destructor
+ ****************************************/
+ ~SessionContextManager();
+
+ /******************************************
+ * allocateSessionContext
+ * allocate SessionContext data block
+ ******************************************/
+ SessionContext* allocateSessionContext();
+
+ /******************************************
+ * deallocateSessionContext
+ * deallocate a SessionContext data block
+ ******************************************/
+ void deallocateSessionContext(SessionContext* SessionContextp );
+
+ private:
+ cmn::memPool::MemPoolManager<SessionContext> poolManager_m;
+ };
+};
+
+#endif
+
+
diff --git a/include/mme-app/contextManager/subsDataGroupManager.h b/include/mme-app/contextManager/subsDataGroupManager.h
new file mode 100644
index 0000000..b8d7b16
--- /dev/null
+++ b/include/mme-app/contextManager/subsDataGroupManager.h
@@ -0,0 +1,270 @@
+/*
+ * Copyright 2019-present, Infosys Limited.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __SUBS_DATAGROUPMANAGER__
+#define __SUBS_DATAGROUPMANAGER__
+/**************************************
+ *
+ * This is an auto generated file.
+ * Please do not edit this file.
+ * All edits to be made through template source file
+ * <TOP-DIR/scripts/SMCodeGen/templates/ctxtManagerTmpls/subsDataGroupManager.h.tt>
+ ***************************************/
+#include <map>
+#include <mutex>
+
+#include "dataGroupManager.h"
+#include "contextManager/dataBlocks.h"
+#include "contextManager/uEContextManager.h"
+#include "contextManager/mmContextManager.h"
+#include "contextManager/sessionContextManager.h"
+#include "contextManager/bearerContextManager.h"
+#include "contextManager/mmeProcedureCtxtManager.h"
+#include "contextManager/mmeDetachProcedureCtxtManager.h"
+#include "contextManager/mmeSvcReqProcedureCtxtManager.h"
+#include "contextManager/mmeTauProcedureCtxtManager.h"
+
+
+namespace mme
+{
+ class SubsDataGroupManager:public cmn::DGM::DataGroupManager
+ {
+ public:
+
+ /******************************************
+ * Instance
+ * Creates static instance for the SubsDataGroupManager
+ *******************************************/
+ static SubsDataGroupManager* Instance();
+
+ /****************************************
+ * SubsDataGroupManager
+ * Destructor
+ ****************************************/
+ virtual ~SubsDataGroupManager();
+
+ /******************************************
+ * initialize
+ * Initializes control block and pool managers
+ ******************************************/
+ void initialize();
+
+ /******************************************
+ * getUEContext
+ * Get UEContext data block
+ ******************************************/
+ UEContext* getUEContext();
+
+ /******************************************
+ * deleteUEContext
+ * Delete a UEContext data block
+ ******************************************/
+ void deleteUEContext(UEContext* UEContextp );
+
+ /******************************************
+ * getMmContext
+ * Get MmContext data block
+ ******************************************/
+ MmContext* getMmContext();
+
+ /******************************************
+ * deleteMmContext
+ * Delete a MmContext data block
+ ******************************************/
+ void deleteMmContext(MmContext* MmContextp );
+
+ /******************************************
+ * getSessionContext
+ * Get SessionContext data block
+ ******************************************/
+ SessionContext* getSessionContext();
+
+ /******************************************
+ * deleteSessionContext
+ * Delete a SessionContext data block
+ ******************************************/
+ void deleteSessionContext(SessionContext* SessionContextp );
+
+ /******************************************
+ * getBearerContext
+ * Get BearerContext data block
+ ******************************************/
+ BearerContext* getBearerContext();
+
+ /******************************************
+ * deleteBearerContext
+ * Delete a BearerContext data block
+ ******************************************/
+ void deleteBearerContext(BearerContext* BearerContextp );
+
+ /******************************************
+ * getMmeProcedureCtxt
+ * Get MmeProcedureCtxt data block
+ ******************************************/
+ MmeProcedureCtxt* getMmeProcedureCtxt();
+
+ /******************************************
+ * deleteMmeProcedureCtxt
+ * Delete a MmeProcedureCtxt data block
+ ******************************************/
+ void deleteMmeProcedureCtxt(MmeProcedureCtxt* MmeProcedureCtxtp );
+
+ /******************************************
+ * getMmeDetachProcedureCtxt
+ * Get MmeDetachProcedureCtxt data block
+ ****************************************/
+ MmeDetachProcedureCtxt* getMmeDetachProcedureCtxt();
+
+ /******************************************
+ * deleteMmeDetachProcedureCtxt
+ * Delete a MmeDetachProcedureCtxt data block
+ ******************************************/
+ void deleteMmeDetachProcedureCtxt(MmeDetachProcedureCtxt* MmeDetachProcedureCtxtp );
+
+ /******************************************
+ * getMmeSvcReqProcedureCtxt
+ * Get MmeSvcReqProcedureCtxt data block
+ ******************************************/
+ MmeSvcReqProcedureCtxt* getMmeSvcReqProcedureCtxt();
+
+ /******************************************
+ * deleteMmeSvcReqProcedureCtxt
+ * Delete a MmeSvcReqProcedureCtxt data block
+ ******************************************/
+ void deleteMmeSvcReqProcedureCtxt(MmeSvcReqProcedureCtxt* MmeSvcReqProcedureCtxtp );
+
+ /******************************************
+ * getMmeTauProcedureCtxt
+ * Get MmeTauProcedureCtxt data block
+ ******************************************/
+ MmeTauProcedureCtxt* getMmeTauProcedureCtxt();
+
+ /******************************************
+ * deleteMmeTauProcedureCtxt
+ * Delete a MmeTauProcedureCtxt data block
+ ******************************************/
+ void deleteMmeTauProcedureCtxt(MmeTauProcedureCtxt* MmeTauProcedureCtxtp );
+
+ /******************************************
+ * addimsikey
+ * Add a imsi as key and cb index as value to imsi_cb_id_map
+ ******************************************/
+ int addimsikey( DigitRegister15 key, int cb_index );
+
+ /******************************************
+ * deleteimsikey
+ * delete a imsi key from imsi_cb_id_map
+ ******************************************/
+ int deleteimsikey( DigitRegister15 key );
+
+ /******************************************
+ * findCBWithimsi
+ * Find cb with given imsi from imsi_cb_id_map
+ ******************************************/
+ int findCBWithimsi( DigitRegister15 key );
+
+ /******************************************
+ * addmTmsikey
+ * Add a mTmsi as key and cb index as value to mTmsi_cb_id_map
+ ******************************************/
+ int addmTmsikey( uint32_t mTmsi, int cb_index );
+
+ /******************************************
+ * deletemTmsikey
+ * delete a mTmsi key from mTmsi_cb_id_map
+ ******************************************/
+ int deletemTmsikey( uint32_t key );
+
+ /******************************************
+ * findCBWithmTmsi
+ * Find cb with given mTmsi from mTmsi_cb_id_map
+ ******************************************/
+ int findCBWithmTmsi( uint32_t key );
+
+ private:
+
+ /****************************************
+ * SubsDataGroupManager
+ * Private constructor
+ ****************************************/
+ SubsDataGroupManager();
+
+ /****************************************
+ * UEContext Pool Manager
+ ****************************************/
+ UEContextManager* UEContextManagerm_p;
+
+ /****************************************
+ * MmContext Pool Manager
+ ****************************************/
+ MmContextManager* MmContextManagerm_p;
+
+ /****************************************
+ * SessionContext Pool Manager
+ ****************************************/
+ SessionContextManager* SessionContextManagerm_p;
+
+ /****************************************
+ * BearerContext Pool Manager
+ ****************************************/
+ BearerContextManager* BearerContextManagerm_p;
+
+ /****************************************
+ * MmeProcedureCtxt Pool Manager
+ ****************************************/
+ MmeProcedureCtxtManager* MmeProcedureCtxtManagerm_p;
+
+ /****************************************
+ * MmeDetachProcedureCtxt Pool Manager
+ ****************************************/
+ MmeDetachProcedureCtxtManager* MmeDetachProcedureCtxtManagerm_p;
+
+ /****************************************
+ * MmeSvcReqProcedureCtxt Pool Manager
+ ****************************************/
+ MmeSvcReqProcedureCtxtManager* MmeSvcReqProcedureCtxtManagerm_p;
+
+ /****************************************
+ * MmeTauProcedureCtxt Pool Manager
+ ****************************************/
+ MmeTauProcedureCtxtManager* MmeTauProcedureCtxtManagerm_p;
+
+ /****************************************
+ * imsi Key Map
+ ****************************************/
+ std::map<DigitRegister15, int> imsi_cb_id_map;
+
+ /****************************************
+ * imsi Key Map Mutex
+ ****************************************/
+ std::mutex imsi_cb_id_map_mutex;
+
+ /****************************************
+ * mTmsi Key Map
+ ****************************************/
+ std::map<uint32_t, int> mTmsi_cb_id_map;
+
+ /****************************************
+ * mTmsi Key Map Mutex
+ ****************************************/
+ std::mutex mTmsi_cb_id_map_mutex;
+
+ };
+};
+
+
+
+#endif
diff --git a/include/mme-app/contextManager/uEContextManager.h b/include/mme-app/contextManager/uEContextManager.h
new file mode 100644
index 0000000..1daa305
--- /dev/null
+++ b/include/mme-app/contextManager/uEContextManager.h
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2019, Infosys Limited.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __UEContextManager__
+#define __UEContextManager__
+/******************************************************
+* uEContextManager.h
+ * This is an auto generated file.
+ * Please do not edit this file.
+ * All edits to be made through template source file
+ * <TOP-DIR/scripts/SMCodeGen/templates/ctxtManagerTmpls/blockPoolManager.h.tt>
+ ***************************************/
+#include "memPoolManager.h"
+
+namespace mme
+{
+ class UEContext;
+
+ class UEContextManager
+ {
+ public:
+ /****************************************
+ * UEContextManager
+ * constructor
+ ****************************************/
+ UEContextManager(int numOfBlocks);
+
+ /****************************************
+ * UEContextManager
+ * Destructor
+ ****************************************/
+ ~UEContextManager();
+
+ /******************************************
+ * getUEContext
+ * get UEContext data block
+ ******************************************/
+ UEContext* allocateUEContext();
+
+ /******************************************
+ * deleteUEContext
+ * deallocate a UEContext data block
+ ******************************************/
+ void deallocateUEContext(UEContext* UEContextp );
+
+ private:
+ cmn::memPool::MemPoolManager<UEContext> poolManager_m;
+ };
+};
+
+#endif
+
+