MME2 changes - Propped commits from openmme/paging branch. Added scripts
for code gen
Change-Id: Ie55032217232214ac8544ca76ea34335205329e4
diff --git a/include/mme-app/actionHandlers/actionHandlers.h b/include/mme-app/actionHandlers/actionHandlers.h
new file mode 100644
index 0000000..be57cf7
--- /dev/null
+++ b/include/mme-app/actionHandlers/actionHandlers.h
@@ -0,0 +1,302 @@
+
+/*
+ * 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.
+ */
+
+/**************************************
+ *
+ * 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/stateMachineTmpls/actionHandlers.h.tt>
+ **************************************/
+#ifndef ACTIONHANDLERS_H_
+#define ACTIONHANDLERS_H_
+
+#include "smTypes.h"
+
+namespace mme
+{
+ class ActionHandlers
+ {
+
+ /***************************************
+ * Constructor
+ ****************************************/
+ ActionHandlers()
+ {
+ }
+
+ /***************************************
+ * Destructor
+ ****************************************/
+ ~ActionHandlers()
+ {
+ }
+
+ public:
+
+ /**********************************************
+ * Action handler : attach_done
+ ***********************************************/
+ static SM::ActStatus attach_done(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : auth_req_to_ue
+ ***********************************************/
+ static SM::ActStatus auth_req_to_ue(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : auth_response_validate
+ ***********************************************/
+ static SM::ActStatus auth_response_validate(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : check_esm_info_req_required
+ ***********************************************/
+ static SM::ActStatus check_esm_info_req_required(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : cs_req_to_sgw
+ ***********************************************/
+ static SM::ActStatus cs_req_to_sgw(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : default_attach_req_handler
+ ***********************************************/
+ static SM::ActStatus default_attach_req_handler(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : default_cancel_loc_req_handler
+ ***********************************************/
+ static SM::ActStatus default_cancel_loc_req_handler(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : default_ddn_handler
+ ***********************************************/
+ static SM::ActStatus default_ddn_handler(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : default_detach_req_handler
+ ***********************************************/
+ static SM::ActStatus default_detach_req_handler(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : default_s1_release_req_handler
+ ***********************************************/
+ static SM::ActStatus default_s1_release_req_handler(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : default_service_req_handler
+ ***********************************************/
+ static SM::ActStatus default_service_req_handler(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : default_tau_req_handler
+ ***********************************************/
+ static SM::ActStatus default_tau_req_handler(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : del_session_req
+ ***********************************************/
+ static SM::ActStatus del_session_req(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : detach_accept_to_ue
+ ***********************************************/
+ static SM::ActStatus detach_accept_to_ue(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : ni_detach_req_to_ue
+ ***********************************************/
+ static SM::ActStatus ni_detach_req_to_ue(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : perform_auth_and_sec_check
+ ***********************************************/
+ static SM::ActStatus perform_auth_and_sec_check(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : process_aia
+ ***********************************************/
+ static SM::ActStatus process_aia(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : process_attach_cmp_from_ue
+ ***********************************************/
+ static SM::ActStatus process_attach_cmp_from_ue(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : process_cs_resp
+ ***********************************************/
+ static SM::ActStatus process_cs_resp(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : process_del_session_resp
+ ***********************************************/
+ static SM::ActStatus process_del_session_resp(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : process_detach_accept_from_ue
+ ***********************************************/
+ static SM::ActStatus process_detach_accept_from_ue(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : process_esm_info_resp
+ ***********************************************/
+ static SM::ActStatus process_esm_info_resp(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : process_identity_response
+ ***********************************************/
+ static SM::ActStatus process_identity_response(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : process_init_ctxt_resp
+ ***********************************************/
+ static SM::ActStatus process_init_ctxt_resp(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : process_init_ctxt_resp_svc_req
+ ***********************************************/
+ static SM::ActStatus process_init_ctxt_resp_svc_req(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : process_mb_resp
+ ***********************************************/
+ static SM::ActStatus process_mb_resp(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : process_mb_resp_svc_req
+ ***********************************************/
+ static SM::ActStatus process_mb_resp_svc_req(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : process_rel_ab_resp_from_sgw
+ ***********************************************/
+ static SM::ActStatus process_rel_ab_resp_from_sgw(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : process_sec_mode_resp
+ ***********************************************/
+ static SM::ActStatus process_sec_mode_resp(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : process_service_request
+ ***********************************************/
+ static SM::ActStatus process_service_request(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : process_ue_ctxt_rel_comp
+ ***********************************************/
+ static SM::ActStatus process_ue_ctxt_rel_comp(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : process_ue_ctxt_rel_comp_for_detach
+ ***********************************************/
+ static SM::ActStatus process_ue_ctxt_rel_comp_for_detach(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : process_ula
+ ***********************************************/
+ static SM::ActStatus process_ula(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : sec_mode_cmd_to_ue
+ ***********************************************/
+ static SM::ActStatus sec_mode_cmd_to_ue(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : send_air_to_hss
+ ***********************************************/
+ static SM::ActStatus send_air_to_hss(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : send_auth_reject
+ ***********************************************/
+ static SM::ActStatus send_auth_reject(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : send_ddn_ack_to_sgw
+ ***********************************************/
+ static SM::ActStatus send_ddn_ack_to_sgw(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : send_esm_info_req_to_ue
+ ***********************************************/
+ static SM::ActStatus send_esm_info_req_to_ue(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : send_identity_request_to_ue
+ ***********************************************/
+ static SM::ActStatus send_identity_request_to_ue(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : send_init_ctxt_req_to_ue
+ ***********************************************/
+ static SM::ActStatus send_init_ctxt_req_to_ue(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : send_init_ctxt_req_to_ue_svc_req
+ ***********************************************/
+ static SM::ActStatus send_init_ctxt_req_to_ue_svc_req(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : send_mb_req_to_sgw
+ ***********************************************/
+ static SM::ActStatus send_mb_req_to_sgw(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : send_mb_req_to_sgw_svc_req
+ ***********************************************/
+ static SM::ActStatus send_mb_req_to_sgw_svc_req(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : send_paging_req_to_ue
+ ***********************************************/
+ static SM::ActStatus send_paging_req_to_ue(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : send_rel_ab_req_to_sgw
+ ***********************************************/
+ static SM::ActStatus send_rel_ab_req_to_sgw(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : send_s1_rel_cmd_to_ue
+ ***********************************************/
+ static SM::ActStatus send_s1_rel_cmd_to_ue(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : send_s1_rel_cmd_to_ue_for_detach
+ ***********************************************/
+ static SM::ActStatus send_s1_rel_cmd_to_ue_for_detach(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : send_tau_response_to_ue
+ ***********************************************/
+ static SM::ActStatus send_tau_response_to_ue(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : send_ulr_to_hss
+ ***********************************************/
+ static SM::ActStatus send_ulr_to_hss(SM::ControlBlock& cb);
+
+ /**********************************************
+ * Action handler : validate_imsi_in_ue_context
+ ***********************************************/
+ static SM::ActStatus validate_imsi_in_ue_context(SM::ControlBlock& cb);
+ };//ActionHandlers
+};//mme
+
+#endif /* ACTIONHANDLERS_H_ */
\ No newline at end of file
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
+
+
diff --git a/include/mme-app/hash.h b/include/mme-app/hash.h
new file mode 100644
index 0000000..739f707
--- /dev/null
+++ b/include/mme-app/hash.h
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ *
+ * 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 __IMSI_LOOKUP_H_
+#define __IMSI_LOOKUP_H_
+
+int
+init_hash();
+
+#endif /*__IMSI_LOOKUP_H_*/
diff --git a/include/mme-app/interfaces/mmeIpcInterface.h b/include/mme-app/interfaces/mmeIpcInterface.h
new file mode 100644
index 0000000..58d85c6
--- /dev/null
+++ b/include/mme-app/interfaces/mmeIpcInterface.h
@@ -0,0 +1,42 @@
+/*
+ * mmeIpcInterface.h
+ *
+ * Created on: Aug 29, 2019
+ * Author: Anjana_Sreekumar
+ */
+
+#ifndef INCLUDE_MME_APP_INTERFACES_MMEIPCINTERFACE_H_
+#define INCLUDE_MME_APP_INTERFACES_MMEIPCINTERFACE_H_
+
+#include <ipcChannel.h>
+
+namespace cmn{
+namespace utils{
+ class MsgBuffer;
+}
+}
+
+class MmeIpcInterface {
+
+public:
+ MmeIpcInterface();
+ virtual ~MmeIpcInterface();
+
+ bool setup();
+ void teardown();
+
+ cmn::ipc::IpcChannel* sender();
+ cmn::ipc::IpcChannel* reader();
+
+ void handleIpcMsg(cmn::utils::MsgBuffer* buf);
+
+ bool dispatchIpcMsg(char* buf, uint32_t len, cmn::ipc::IpcAddress& destAddr);
+
+ bool dispatchIpcMsg(cmn::utils::MsgBuffer* msgBuf_p, cmn::ipc::IpcAddress& destAddr);
+
+private:
+ cmn::ipc::IpcChannel* sender_mp;
+ cmn::ipc::IpcChannel* reader_mp;
+};
+
+#endif /* INCLUDE_MME_APP_INTERFACES_MMEIPCINTERFACE_H_ */
diff --git a/include/mme-app/mmeStates/attachStart.h b/include/mme-app/mmeStates/attachStart.h
new file mode 100644
index 0000000..56df80b
--- /dev/null
+++ b/include/mme-app/mmeStates/attachStart.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * attachStart.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __AttachStart__
+#define __AttachStart__
+
+#include "state.h"
+
+namespace mme {
+
+ class AttachStart : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static AttachStart* Instance();
+
+ /****************************************
+ * AttachStart
+ * Destructor
+ ****************************************/
+ ~AttachStart();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * AttachStart
+ * Private constructor
+ ****************************************/
+ AttachStart();
+ };
+};
+#endif // __AttachStart__
diff --git a/include/mme-app/mmeStates/attachWfAia.h b/include/mme-app/mmeStates/attachWfAia.h
new file mode 100644
index 0000000..b54c808
--- /dev/null
+++ b/include/mme-app/mmeStates/attachWfAia.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * attachWfAia.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __AttachWfAia__
+#define __AttachWfAia__
+
+#include "state.h"
+
+namespace mme {
+
+ class AttachWfAia : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static AttachWfAia* Instance();
+
+ /****************************************
+ * AttachWfAia
+ * Destructor
+ ****************************************/
+ ~AttachWfAia();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * AttachWfAia
+ * Private constructor
+ ****************************************/
+ AttachWfAia();
+ };
+};
+#endif // __AttachWfAia__
diff --git a/include/mme-app/mmeStates/attachWfAttCmp.h b/include/mme-app/mmeStates/attachWfAttCmp.h
new file mode 100644
index 0000000..5913047
--- /dev/null
+++ b/include/mme-app/mmeStates/attachWfAttCmp.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * attachWfAttCmp.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __AttachWfAttCmp__
+#define __AttachWfAttCmp__
+
+#include "state.h"
+
+namespace mme {
+
+ class AttachWfAttCmp : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static AttachWfAttCmp* Instance();
+
+ /****************************************
+ * AttachWfAttCmp
+ * Destructor
+ ****************************************/
+ ~AttachWfAttCmp();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * AttachWfAttCmp
+ * Private constructor
+ ****************************************/
+ AttachWfAttCmp();
+ };
+};
+#endif // __AttachWfAttCmp__
diff --git a/include/mme-app/mmeStates/attachWfAuthResp.h b/include/mme-app/mmeStates/attachWfAuthResp.h
new file mode 100644
index 0000000..af8c4ba
--- /dev/null
+++ b/include/mme-app/mmeStates/attachWfAuthResp.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * attachWfAuthResp.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __AttachWfAuthResp__
+#define __AttachWfAuthResp__
+
+#include "state.h"
+
+namespace mme {
+
+ class AttachWfAuthResp : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static AttachWfAuthResp* Instance();
+
+ /****************************************
+ * AttachWfAuthResp
+ * Destructor
+ ****************************************/
+ ~AttachWfAuthResp();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * AttachWfAuthResp
+ * Private constructor
+ ****************************************/
+ AttachWfAuthResp();
+ };
+};
+#endif // __AttachWfAuthResp__
diff --git a/include/mme-app/mmeStates/attachWfAuthRespValidate.h b/include/mme-app/mmeStates/attachWfAuthRespValidate.h
new file mode 100644
index 0000000..46cfe57
--- /dev/null
+++ b/include/mme-app/mmeStates/attachWfAuthRespValidate.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * attachWfAuthRespValidate.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __AttachWfAuthRespValidate__
+#define __AttachWfAuthRespValidate__
+
+#include "state.h"
+
+namespace mme {
+
+ class AttachWfAuthRespValidate : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static AttachWfAuthRespValidate* Instance();
+
+ /****************************************
+ * AttachWfAuthRespValidate
+ * Destructor
+ ****************************************/
+ ~AttachWfAuthRespValidate();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * AttachWfAuthRespValidate
+ * Private constructor
+ ****************************************/
+ AttachWfAuthRespValidate();
+ };
+};
+#endif // __AttachWfAuthRespValidate__
diff --git a/include/mme-app/mmeStates/attachWfCsResp.h b/include/mme-app/mmeStates/attachWfCsResp.h
new file mode 100644
index 0000000..a9ebb84
--- /dev/null
+++ b/include/mme-app/mmeStates/attachWfCsResp.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * attachWfCsResp.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __AttachWfCsResp__
+#define __AttachWfCsResp__
+
+#include "state.h"
+
+namespace mme {
+
+ class AttachWfCsResp : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static AttachWfCsResp* Instance();
+
+ /****************************************
+ * AttachWfCsResp
+ * Destructor
+ ****************************************/
+ ~AttachWfCsResp();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * AttachWfCsResp
+ * Private constructor
+ ****************************************/
+ AttachWfCsResp();
+ };
+};
+#endif // __AttachWfCsResp__
diff --git a/include/mme-app/mmeStates/attachWfEsmInfoCheck.h b/include/mme-app/mmeStates/attachWfEsmInfoCheck.h
new file mode 100644
index 0000000..13c0d24
--- /dev/null
+++ b/include/mme-app/mmeStates/attachWfEsmInfoCheck.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * attachWfEsmInfoCheck.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __AttachWfEsmInfoCheck__
+#define __AttachWfEsmInfoCheck__
+
+#include "state.h"
+
+namespace mme {
+
+ class AttachWfEsmInfoCheck : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static AttachWfEsmInfoCheck* Instance();
+
+ /****************************************
+ * AttachWfEsmInfoCheck
+ * Destructor
+ ****************************************/
+ ~AttachWfEsmInfoCheck();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * AttachWfEsmInfoCheck
+ * Private constructor
+ ****************************************/
+ AttachWfEsmInfoCheck();
+ };
+};
+#endif // __AttachWfEsmInfoCheck__
diff --git a/include/mme-app/mmeStates/attachWfEsmInfoResp.h b/include/mme-app/mmeStates/attachWfEsmInfoResp.h
new file mode 100644
index 0000000..b710b26
--- /dev/null
+++ b/include/mme-app/mmeStates/attachWfEsmInfoResp.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * attachWfEsmInfoResp.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __AttachWfEsmInfoResp__
+#define __AttachWfEsmInfoResp__
+
+#include "state.h"
+
+namespace mme {
+
+ class AttachWfEsmInfoResp : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static AttachWfEsmInfoResp* Instance();
+
+ /****************************************
+ * AttachWfEsmInfoResp
+ * Destructor
+ ****************************************/
+ ~AttachWfEsmInfoResp();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * AttachWfEsmInfoResp
+ * Private constructor
+ ****************************************/
+ AttachWfEsmInfoResp();
+ };
+};
+#endif // __AttachWfEsmInfoResp__
diff --git a/include/mme-app/mmeStates/attachWfIdentityResponse.h b/include/mme-app/mmeStates/attachWfIdentityResponse.h
new file mode 100644
index 0000000..52ce29c
--- /dev/null
+++ b/include/mme-app/mmeStates/attachWfIdentityResponse.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * attachWfIdentityResponse.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __AttachWfIdentityResponse__
+#define __AttachWfIdentityResponse__
+
+#include "state.h"
+
+namespace mme {
+
+ class AttachWfIdentityResponse : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static AttachWfIdentityResponse* Instance();
+
+ /****************************************
+ * AttachWfIdentityResponse
+ * Destructor
+ ****************************************/
+ ~AttachWfIdentityResponse();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * AttachWfIdentityResponse
+ * Private constructor
+ ****************************************/
+ AttachWfIdentityResponse();
+ };
+};
+#endif // __AttachWfIdentityResponse__
diff --git a/include/mme-app/mmeStates/attachWfImsiValidateAction.h b/include/mme-app/mmeStates/attachWfImsiValidateAction.h
new file mode 100644
index 0000000..aeede2b
--- /dev/null
+++ b/include/mme-app/mmeStates/attachWfImsiValidateAction.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * attachWfImsiValidateAction.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __AttachWfImsiValidateAction__
+#define __AttachWfImsiValidateAction__
+
+#include "state.h"
+
+namespace mme {
+
+ class AttachWfImsiValidateAction : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static AttachWfImsiValidateAction* Instance();
+
+ /****************************************
+ * AttachWfImsiValidateAction
+ * Destructor
+ ****************************************/
+ ~AttachWfImsiValidateAction();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * AttachWfImsiValidateAction
+ * Private constructor
+ ****************************************/
+ AttachWfImsiValidateAction();
+ };
+};
+#endif // __AttachWfImsiValidateAction__
diff --git a/include/mme-app/mmeStates/attachWfInitCtxtResp.h b/include/mme-app/mmeStates/attachWfInitCtxtResp.h
new file mode 100644
index 0000000..e6a37bc
--- /dev/null
+++ b/include/mme-app/mmeStates/attachWfInitCtxtResp.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * attachWfInitCtxtResp.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __AttachWfInitCtxtResp__
+#define __AttachWfInitCtxtResp__
+
+#include "state.h"
+
+namespace mme {
+
+ class AttachWfInitCtxtResp : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static AttachWfInitCtxtResp* Instance();
+
+ /****************************************
+ * AttachWfInitCtxtResp
+ * Destructor
+ ****************************************/
+ ~AttachWfInitCtxtResp();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * AttachWfInitCtxtResp
+ * Private constructor
+ ****************************************/
+ AttachWfInitCtxtResp();
+ };
+};
+#endif // __AttachWfInitCtxtResp__
diff --git a/include/mme-app/mmeStates/attachWfInitCtxtRespAttCmp.h b/include/mme-app/mmeStates/attachWfInitCtxtRespAttCmp.h
new file mode 100644
index 0000000..0484d76
--- /dev/null
+++ b/include/mme-app/mmeStates/attachWfInitCtxtRespAttCmp.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * attachWfInitCtxtRespAttCmp.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __AttachWfInitCtxtRespAttCmp__
+#define __AttachWfInitCtxtRespAttCmp__
+
+#include "state.h"
+
+namespace mme {
+
+ class AttachWfInitCtxtRespAttCmp : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static AttachWfInitCtxtRespAttCmp* Instance();
+
+ /****************************************
+ * AttachWfInitCtxtRespAttCmp
+ * Destructor
+ ****************************************/
+ ~AttachWfInitCtxtRespAttCmp();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * AttachWfInitCtxtRespAttCmp
+ * Private constructor
+ ****************************************/
+ AttachWfInitCtxtRespAttCmp();
+ };
+};
+#endif // __AttachWfInitCtxtRespAttCmp__
diff --git a/include/mme-app/mmeStates/attachWfMbResp.h b/include/mme-app/mmeStates/attachWfMbResp.h
new file mode 100644
index 0000000..4ceb47d
--- /dev/null
+++ b/include/mme-app/mmeStates/attachWfMbResp.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * attachWfMbResp.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __AttachWfMbResp__
+#define __AttachWfMbResp__
+
+#include "state.h"
+
+namespace mme {
+
+ class AttachWfMbResp : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static AttachWfMbResp* Instance();
+
+ /****************************************
+ * AttachWfMbResp
+ * Destructor
+ ****************************************/
+ ~AttachWfMbResp();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * AttachWfMbResp
+ * Private constructor
+ ****************************************/
+ AttachWfMbResp();
+ };
+};
+#endif // __AttachWfMbResp__
diff --git a/include/mme-app/mmeStates/attachWfSecCmp.h b/include/mme-app/mmeStates/attachWfSecCmp.h
new file mode 100644
index 0000000..e5efe91
--- /dev/null
+++ b/include/mme-app/mmeStates/attachWfSecCmp.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * attachWfSecCmp.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __AttachWfSecCmp__
+#define __AttachWfSecCmp__
+
+#include "state.h"
+
+namespace mme {
+
+ class AttachWfSecCmp : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static AttachWfSecCmp* Instance();
+
+ /****************************************
+ * AttachWfSecCmp
+ * Destructor
+ ****************************************/
+ ~AttachWfSecCmp();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * AttachWfSecCmp
+ * Private constructor
+ ****************************************/
+ AttachWfSecCmp();
+ };
+};
+#endif // __AttachWfSecCmp__
diff --git a/include/mme-app/mmeStates/attachWfUla.h b/include/mme-app/mmeStates/attachWfUla.h
new file mode 100644
index 0000000..3c046a2
--- /dev/null
+++ b/include/mme-app/mmeStates/attachWfUla.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * attachWfUla.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __AttachWfUla__
+#define __AttachWfUla__
+
+#include "state.h"
+
+namespace mme {
+
+ class AttachWfUla : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static AttachWfUla* Instance();
+
+ /****************************************
+ * AttachWfUla
+ * Destructor
+ ****************************************/
+ ~AttachWfUla();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * AttachWfUla
+ * Private constructor
+ ****************************************/
+ AttachWfUla();
+ };
+};
+#endif // __AttachWfUla__
diff --git a/include/mme-app/mmeStates/defaultMmeState.h b/include/mme-app/mmeStates/defaultMmeState.h
new file mode 100644
index 0000000..e223b75
--- /dev/null
+++ b/include/mme-app/mmeStates/defaultMmeState.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * defaultMmeState.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __DefaultMmeState__
+#define __DefaultMmeState__
+
+#include "state.h"
+
+namespace mme {
+
+ class DefaultMmeState : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static DefaultMmeState* Instance();
+
+ /****************************************
+ * DefaultMmeState
+ * Destructor
+ ****************************************/
+ ~DefaultMmeState();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * DefaultMmeState
+ * Private constructor
+ ****************************************/
+ DefaultMmeState();
+ };
+};
+#endif // __DefaultMmeState__
diff --git a/include/mme-app/mmeStates/detachStart.h b/include/mme-app/mmeStates/detachStart.h
new file mode 100644
index 0000000..d40bcfd
--- /dev/null
+++ b/include/mme-app/mmeStates/detachStart.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * detachStart.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __DetachStart__
+#define __DetachStart__
+
+#include "state.h"
+
+namespace mme {
+
+ class DetachStart : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static DetachStart* Instance();
+
+ /****************************************
+ * DetachStart
+ * Destructor
+ ****************************************/
+ ~DetachStart();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * DetachStart
+ * Private constructor
+ ****************************************/
+ DetachStart();
+ };
+};
+#endif // __DetachStart__
diff --git a/include/mme-app/mmeStates/detachWfDelSessionResp.h b/include/mme-app/mmeStates/detachWfDelSessionResp.h
new file mode 100644
index 0000000..6b9a9a7
--- /dev/null
+++ b/include/mme-app/mmeStates/detachWfDelSessionResp.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * detachWfDelSessionResp.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __DetachWfDelSessionResp__
+#define __DetachWfDelSessionResp__
+
+#include "state.h"
+
+namespace mme {
+
+ class DetachWfDelSessionResp : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static DetachWfDelSessionResp* Instance();
+
+ /****************************************
+ * DetachWfDelSessionResp
+ * Destructor
+ ****************************************/
+ ~DetachWfDelSessionResp();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * DetachWfDelSessionResp
+ * Private constructor
+ ****************************************/
+ DetachWfDelSessionResp();
+ };
+};
+#endif // __DetachWfDelSessionResp__
diff --git a/include/mme-app/mmeStates/niDetachStart.h b/include/mme-app/mmeStates/niDetachStart.h
new file mode 100644
index 0000000..a45260f
--- /dev/null
+++ b/include/mme-app/mmeStates/niDetachStart.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * niDetachStart.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __NiDetachStart__
+#define __NiDetachStart__
+
+#include "state.h"
+
+namespace mme {
+
+ class NiDetachStart : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static NiDetachStart* Instance();
+
+ /****************************************
+ * NiDetachStart
+ * Destructor
+ ****************************************/
+ ~NiDetachStart();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * NiDetachStart
+ * Private constructor
+ ****************************************/
+ NiDetachStart();
+ };
+};
+#endif // __NiDetachStart__
diff --git a/include/mme-app/mmeStates/niDetachWfDelSessResp.h b/include/mme-app/mmeStates/niDetachWfDelSessResp.h
new file mode 100644
index 0000000..9f334ce
--- /dev/null
+++ b/include/mme-app/mmeStates/niDetachWfDelSessResp.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * niDetachWfDelSessResp.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __NiDetachWfDelSessResp__
+#define __NiDetachWfDelSessResp__
+
+#include "state.h"
+
+namespace mme {
+
+ class NiDetachWfDelSessResp : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static NiDetachWfDelSessResp* Instance();
+
+ /****************************************
+ * NiDetachWfDelSessResp
+ * Destructor
+ ****************************************/
+ ~NiDetachWfDelSessResp();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * NiDetachWfDelSessResp
+ * Private constructor
+ ****************************************/
+ NiDetachWfDelSessResp();
+ };
+};
+#endif // __NiDetachWfDelSessResp__
diff --git a/include/mme-app/mmeStates/niDetachWfDetAccptDelSessResp.h b/include/mme-app/mmeStates/niDetachWfDetAccptDelSessResp.h
new file mode 100644
index 0000000..c3f3f3d
--- /dev/null
+++ b/include/mme-app/mmeStates/niDetachWfDetAccptDelSessResp.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * niDetachWfDetAccptDelSessResp.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __NiDetachWfDetAccptDelSessResp__
+#define __NiDetachWfDetAccptDelSessResp__
+
+#include "state.h"
+
+namespace mme {
+
+ class NiDetachWfDetAccptDelSessResp : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static NiDetachWfDetAccptDelSessResp* Instance();
+
+ /****************************************
+ * NiDetachWfDetAccptDelSessResp
+ * Destructor
+ ****************************************/
+ ~NiDetachWfDetAccptDelSessResp();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * NiDetachWfDetAccptDelSessResp
+ * Private constructor
+ ****************************************/
+ NiDetachWfDetAccptDelSessResp();
+ };
+};
+#endif // __NiDetachWfDetAccptDelSessResp__
diff --git a/include/mme-app/mmeStates/niDetachWfDetachAccept.h b/include/mme-app/mmeStates/niDetachWfDetachAccept.h
new file mode 100644
index 0000000..47ccdc9
--- /dev/null
+++ b/include/mme-app/mmeStates/niDetachWfDetachAccept.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * niDetachWfDetachAccept.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __NiDetachWfDetachAccept__
+#define __NiDetachWfDetachAccept__
+
+#include "state.h"
+
+namespace mme {
+
+ class NiDetachWfDetachAccept : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static NiDetachWfDetachAccept* Instance();
+
+ /****************************************
+ * NiDetachWfDetachAccept
+ * Destructor
+ ****************************************/
+ ~NiDetachWfDetachAccept();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * NiDetachWfDetachAccept
+ * Private constructor
+ ****************************************/
+ NiDetachWfDetachAccept();
+ };
+};
+#endif // __NiDetachWfDetachAccept__
diff --git a/include/mme-app/mmeStates/niDetachWfS1RelComp.h b/include/mme-app/mmeStates/niDetachWfS1RelComp.h
new file mode 100644
index 0000000..57af7a1
--- /dev/null
+++ b/include/mme-app/mmeStates/niDetachWfS1RelComp.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * niDetachWfS1RelComp.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __NiDetachWfS1RelComp__
+#define __NiDetachWfS1RelComp__
+
+#include "state.h"
+
+namespace mme {
+
+ class NiDetachWfS1RelComp : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static NiDetachWfS1RelComp* Instance();
+
+ /****************************************
+ * NiDetachWfS1RelComp
+ * Destructor
+ ****************************************/
+ ~NiDetachWfS1RelComp();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * NiDetachWfS1RelComp
+ * Private constructor
+ ****************************************/
+ NiDetachWfS1RelComp();
+ };
+};
+#endif // __NiDetachWfS1RelComp__
diff --git a/include/mme-app/mmeStates/pagingStart.h b/include/mme-app/mmeStates/pagingStart.h
new file mode 100644
index 0000000..d42f481
--- /dev/null
+++ b/include/mme-app/mmeStates/pagingStart.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * pagingStart.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __PagingStart__
+#define __PagingStart__
+
+#include "state.h"
+
+namespace mme {
+
+ class PagingStart : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static PagingStart* Instance();
+
+ /****************************************
+ * PagingStart
+ * Destructor
+ ****************************************/
+ ~PagingStart();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * PagingStart
+ * Private constructor
+ ****************************************/
+ PagingStart();
+ };
+};
+#endif // __PagingStart__
diff --git a/include/mme-app/mmeStates/pagingWfServiceReq.h b/include/mme-app/mmeStates/pagingWfServiceReq.h
new file mode 100644
index 0000000..5c81557
--- /dev/null
+++ b/include/mme-app/mmeStates/pagingWfServiceReq.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * pagingWfServiceReq.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __PagingWfServiceReq__
+#define __PagingWfServiceReq__
+
+#include "state.h"
+
+namespace mme {
+
+ class PagingWfServiceReq : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static PagingWfServiceReq* Instance();
+
+ /****************************************
+ * PagingWfServiceReq
+ * Destructor
+ ****************************************/
+ ~PagingWfServiceReq();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * PagingWfServiceReq
+ * Private constructor
+ ****************************************/
+ PagingWfServiceReq();
+ };
+};
+#endif // __PagingWfServiceReq__
diff --git a/include/mme-app/mmeStates/s1ReleaseStart.h b/include/mme-app/mmeStates/s1ReleaseStart.h
new file mode 100644
index 0000000..7540446
--- /dev/null
+++ b/include/mme-app/mmeStates/s1ReleaseStart.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * s1ReleaseStart.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __S1ReleaseStart__
+#define __S1ReleaseStart__
+
+#include "state.h"
+
+namespace mme {
+
+ class S1ReleaseStart : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static S1ReleaseStart* Instance();
+
+ /****************************************
+ * S1ReleaseStart
+ * Destructor
+ ****************************************/
+ ~S1ReleaseStart();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * S1ReleaseStart
+ * Private constructor
+ ****************************************/
+ S1ReleaseStart();
+ };
+};
+#endif // __S1ReleaseStart__
diff --git a/include/mme-app/mmeStates/s1ReleaseWfReleaseAccessBearerResp.h b/include/mme-app/mmeStates/s1ReleaseWfReleaseAccessBearerResp.h
new file mode 100644
index 0000000..6c6eef7
--- /dev/null
+++ b/include/mme-app/mmeStates/s1ReleaseWfReleaseAccessBearerResp.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * s1ReleaseWfReleaseAccessBearerResp.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __S1ReleaseWfReleaseAccessBearerResp__
+#define __S1ReleaseWfReleaseAccessBearerResp__
+
+#include "state.h"
+
+namespace mme {
+
+ class S1ReleaseWfReleaseAccessBearerResp : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static S1ReleaseWfReleaseAccessBearerResp* Instance();
+
+ /****************************************
+ * S1ReleaseWfReleaseAccessBearerResp
+ * Destructor
+ ****************************************/
+ ~S1ReleaseWfReleaseAccessBearerResp();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * S1ReleaseWfReleaseAccessBearerResp
+ * Private constructor
+ ****************************************/
+ S1ReleaseWfReleaseAccessBearerResp();
+ };
+};
+#endif // __S1ReleaseWfReleaseAccessBearerResp__
diff --git a/include/mme-app/mmeStates/s1ReleaseWfUeCtxtReleaseComp.h b/include/mme-app/mmeStates/s1ReleaseWfUeCtxtReleaseComp.h
new file mode 100644
index 0000000..25b39c6
--- /dev/null
+++ b/include/mme-app/mmeStates/s1ReleaseWfUeCtxtReleaseComp.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * s1ReleaseWfUeCtxtReleaseComp.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __S1ReleaseWfUeCtxtReleaseComp__
+#define __S1ReleaseWfUeCtxtReleaseComp__
+
+#include "state.h"
+
+namespace mme {
+
+ class S1ReleaseWfUeCtxtReleaseComp : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static S1ReleaseWfUeCtxtReleaseComp* Instance();
+
+ /****************************************
+ * S1ReleaseWfUeCtxtReleaseComp
+ * Destructor
+ ****************************************/
+ ~S1ReleaseWfUeCtxtReleaseComp();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * S1ReleaseWfUeCtxtReleaseComp
+ * Private constructor
+ ****************************************/
+ S1ReleaseWfUeCtxtReleaseComp();
+ };
+};
+#endif // __S1ReleaseWfUeCtxtReleaseComp__
diff --git a/include/mme-app/mmeStates/serviceRequestStart.h b/include/mme-app/mmeStates/serviceRequestStart.h
new file mode 100644
index 0000000..24ca62a
--- /dev/null
+++ b/include/mme-app/mmeStates/serviceRequestStart.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * serviceRequestStart.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __ServiceRequestStart__
+#define __ServiceRequestStart__
+
+#include "state.h"
+
+namespace mme {
+
+ class ServiceRequestStart : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static ServiceRequestStart* Instance();
+
+ /****************************************
+ * ServiceRequestStart
+ * Destructor
+ ****************************************/
+ ~ServiceRequestStart();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * ServiceRequestStart
+ * Private constructor
+ ****************************************/
+ ServiceRequestStart();
+ };
+};
+#endif // __ServiceRequestStart__
diff --git a/include/mme-app/mmeStates/serviceRequestWfAuthAndSecCheckCmp.h b/include/mme-app/mmeStates/serviceRequestWfAuthAndSecCheckCmp.h
new file mode 100644
index 0000000..ba37289
--- /dev/null
+++ b/include/mme-app/mmeStates/serviceRequestWfAuthAndSecCheckCmp.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * serviceRequestWfAuthAndSecCheckCmp.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __ServiceRequestWfAuthAndSecCheckCmp__
+#define __ServiceRequestWfAuthAndSecCheckCmp__
+
+#include "state.h"
+
+namespace mme {
+
+ class ServiceRequestWfAuthAndSecCheckCmp : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static ServiceRequestWfAuthAndSecCheckCmp* Instance();
+
+ /****************************************
+ * ServiceRequestWfAuthAndSecCheckCmp
+ * Destructor
+ ****************************************/
+ ~ServiceRequestWfAuthAndSecCheckCmp();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * ServiceRequestWfAuthAndSecCheckCmp
+ * Private constructor
+ ****************************************/
+ ServiceRequestWfAuthAndSecCheckCmp();
+ };
+};
+#endif // __ServiceRequestWfAuthAndSecCheckCmp__
diff --git a/include/mme-app/mmeStates/serviceRequestWfInitCtxtResp.h b/include/mme-app/mmeStates/serviceRequestWfInitCtxtResp.h
new file mode 100644
index 0000000..0276c08
--- /dev/null
+++ b/include/mme-app/mmeStates/serviceRequestWfInitCtxtResp.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * serviceRequestWfInitCtxtResp.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __ServiceRequestWfInitCtxtResp__
+#define __ServiceRequestWfInitCtxtResp__
+
+#include "state.h"
+
+namespace mme {
+
+ class ServiceRequestWfInitCtxtResp : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static ServiceRequestWfInitCtxtResp* Instance();
+
+ /****************************************
+ * ServiceRequestWfInitCtxtResp
+ * Destructor
+ ****************************************/
+ ~ServiceRequestWfInitCtxtResp();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * ServiceRequestWfInitCtxtResp
+ * Private constructor
+ ****************************************/
+ ServiceRequestWfInitCtxtResp();
+ };
+};
+#endif // __ServiceRequestWfInitCtxtResp__
diff --git a/include/mme-app/mmeStates/serviceRequestWfMbResp.h b/include/mme-app/mmeStates/serviceRequestWfMbResp.h
new file mode 100644
index 0000000..b7b103c
--- /dev/null
+++ b/include/mme-app/mmeStates/serviceRequestWfMbResp.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * serviceRequestWfMbResp.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __ServiceRequestWfMbResp__
+#define __ServiceRequestWfMbResp__
+
+#include "state.h"
+
+namespace mme {
+
+ class ServiceRequestWfMbResp : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static ServiceRequestWfMbResp* Instance();
+
+ /****************************************
+ * ServiceRequestWfMbResp
+ * Destructor
+ ****************************************/
+ ~ServiceRequestWfMbResp();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * ServiceRequestWfMbResp
+ * Private constructor
+ ****************************************/
+ ServiceRequestWfMbResp();
+ };
+};
+#endif // __ServiceRequestWfMbResp__
diff --git a/include/mme-app/mmeStates/stateFactory.h b/include/mme-app/mmeStates/stateFactory.h
new file mode 100644
index 0000000..5367e85
--- /dev/null
+++ b/include/mme-app/mmeStates/stateFactory.h
@@ -0,0 +1,58 @@
+/*
+ * 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.
+ */
+
+/**************************************
+ *
+ * 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/stateMachineTmpls/stateFactory.h.tt>
+ **************************************/
+
+#ifndef __StateFactory__
+#define __StateFactory__
+
+namespace mme {
+ class StateFactory {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static StateFactory* Instance();
+
+ /*****************************************
+ * StateFactory
+ * Destructor
+ *****************************************/
+ ~StateFactory();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * StateFactory
+ * Private constructor
+ ****************************************/
+ StateFactory();
+
+ };
+};
+#endif // __StateFactory__
diff --git a/include/mme-app/mmeStates/tauStart.h b/include/mme-app/mmeStates/tauStart.h
new file mode 100644
index 0000000..d42c203
--- /dev/null
+++ b/include/mme-app/mmeStates/tauStart.h
@@ -0,0 +1,61 @@
+ /*
+ * 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.
+ */
+
+ /******************************************************
+ * tauStart.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/stateMachineTmpls/state.h.tt>
+ ******************************************************/
+
+#ifndef __TauStart__
+#define __TauStart__
+
+#include "state.h"
+
+namespace mme {
+
+ class TauStart : public SM::State
+ {
+ public:
+ /******************************************
+ * Instance
+ * Creates static instance for the state
+ *******************************************/
+ static TauStart* Instance();
+
+ /****************************************
+ * TauStart
+ * Destructor
+ ****************************************/
+ ~TauStart();
+
+ /******************************************
+ * initialize
+ * Initializes action handlers for the state
+ * and next state
+ ******************************************/
+ void initialize();
+
+ private:
+ /****************************************
+ * TauStart
+ * Private constructor
+ ****************************************/
+ TauStart();
+ };
+};
+#endif // __TauStart__
diff --git a/include/mme-app/mme_app.h b/include/mme-app/mme_app.h
new file mode 100644
index 0000000..3f792fd
--- /dev/null
+++ b/include/mme-app/mme_app.h
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ *
+ * 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 __MME_APP_H_
+#define __MME_APP_H_
+
+#include <stdbool.h>
+#include <map>
+#include <array>
+
+#include "s1ap_structs.h"
+
+/**
+ * MME main application configuration parameters structures.
+ * All fields in this will be filled in from input json file.
+ */
+typedef struct mme_config
+{
+ unsigned int mme_ip_addr;
+ unsigned short mme_sctp_port;
+ unsigned int s11_sgw_ip;
+ unsigned int s11_pgw_ip;
+ unsigned int enb_ip;
+ unsigned short enb_port;
+ unsigned short mme_egtp_def_port;
+ char *mme_egtp_def_hostname;
+ char *mme_name;
+
+ char mcc_dig1;
+ char mcc_dig2;
+ char mcc_dig3;
+ char mnc_dig1;
+ char mnc_dig2;
+ char mnc_dig3;
+ struct PLMN plmn_id;
+
+ unsigned int mme_s1ap_ip;
+ unsigned int mme_egtp_ip;
+ unsigned short mme_group_id;
+ unsigned char mme_code;
+} mme_config;
+
+const size_t fifoQSize_c = 1000;
+
+void stat_init();
+
+
+#endif /*__MME_APP_H_*/
diff --git a/include/mme-app/msgHandlers/gtpMsgHandler.h b/include/mme-app/msgHandlers/gtpMsgHandler.h
new file mode 100644
index 0000000..7f38784
--- /dev/null
+++ b/include/mme-app/msgHandlers/gtpMsgHandler.h
@@ -0,0 +1,31 @@
+/*
+ * gtpMsgHandler.h
+ *
+ * Created on: Jun 5, 2019
+ * Author: Anjana_Sreekumar
+ */
+
+#ifndef INCLUDE_MME_APP_MSGHANDLERS_GTPMSGHANDLER_H_
+#define INCLUDE_MME_APP_MSGHANDLERS_GTPMSGHANDLER_H_
+
+#include "msgType.h"
+#include <msgBuffer.h>
+
+class GtpMsgHandler {
+public:
+ static GtpMsgHandler* Instance();
+ ~GtpMsgHandler();
+
+ void handleGtpMessage_v(cmn::utils::MsgBuffer* buffer);
+
+private:
+ GtpMsgHandler();
+
+ void handleCreateSessionResponseMsg_v(const cmn::utils::MsgBuffer* msgData_p, uint32_t ueIdx);
+ void handleModifyBearerResponseMsg_v(const cmn::utils::MsgBuffer* msgData_p, uint32_t ueIdx);
+ void handleDeleteSessionResponseMsg_v(const cmn::utils::MsgBuffer* msgData_p, uint32_t ueIdx);
+ void handleReleaseBearerResponseMsg_v(const cmn::utils::MsgBuffer* msgData_p, uint32_t ueIdx);
+ void handleDdnMsg_v(const cmn::utils::MsgBuffer* msgData_p, uint32_t ueIdx);
+};
+
+#endif /* INCLUDE_MME_APP_MSGHANDLERS_GTPMSGHANDLER_H_ */
diff --git a/include/mme-app/msgHandlers/s1MsgHandler.h b/include/mme-app/msgHandlers/s1MsgHandler.h
new file mode 100644
index 0000000..32ca4d7
--- /dev/null
+++ b/include/mme-app/msgHandlers/s1MsgHandler.h
@@ -0,0 +1,40 @@
+/*
+ * s1MsgHandler.h
+ *
+ * Created on: Jun 5, 2019
+ * Author: Anjana_Sreekumar
+ */
+
+#ifndef INCLUDE_MME_APP_MSGHANDLERS_S1MSGHANDLER_H_
+#define INCLUDE_MME_APP_MSGHANDLERS_S1MSGHANDLER_H_
+
+#include "msgType.h"
+#include <msgBuffer.h>
+
+class S1MsgHandler {
+public:
+ static S1MsgHandler* Instance();
+ ~S1MsgHandler();
+
+ void handleS1Message_v(const cmn::utils::MsgBuffer* buffer);
+
+private:
+ S1MsgHandler();
+
+ void handleInitUeAttachRequestMsg_v(const cmn::utils::MsgBuffer* msgData_p);
+ void handleIdentityResponseMsg_v(const cmn::utils::MsgBuffer* msgData_p, uint32_t ueIdx);
+ void handleAuthResponseMsg_v(const cmn::utils::MsgBuffer* msgData_p, uint32_t ueIdx);
+ void handleSecurityModeResponse_v(const cmn::utils::MsgBuffer* msgData_p, uint32_t ueIdx);
+ void handleEsmInfoResponse_v(const cmn::utils::MsgBuffer* msgData_p, uint32_t ueIdx);
+ void handleInitCtxtResponse_v(const cmn::utils::MsgBuffer* msgData_p, uint32_t ueIdx);
+ void handleAttachComplete_v(const cmn::utils::MsgBuffer* msgData_p, uint32_t ueIdx);
+ void handleDetachRequest_v(const cmn::utils::MsgBuffer* msgData_p, uint32_t ueIdx);
+ void handleS1ReleaseRequestMsg_v(const cmn::utils::MsgBuffer* msgData_p, uint32_t ueIdx);
+ void handleS1ReleaseComplete_v(const cmn::utils::MsgBuffer* msgData_p, uint32_t ueIdx);
+ void handleNIDetachRequest_v(const cmn::utils::MsgBuffer* msgData_p, uint32_t ueIdx);
+ void handleDetachAcceptFromUE_v(const cmn::utils::MsgBuffer* msgData_p, uint32_t ueIdx);
+ void handleServiceRequest_v(const cmn::utils::MsgBuffer* msgData_p, uint32_t ueIdx);
+ void handleTauRequestMsg_v(const cmn::utils::MsgBuffer* msgData_p, uint32_t ueIdx);
+};
+
+#endif /* INCLUDE_MME_APP_MSGHANDLERS_S1MSGHANDLER_H_ */
diff --git a/include/mme-app/msgHandlers/s6MsgHandler.h b/include/mme-app/msgHandlers/s6MsgHandler.h
new file mode 100644
index 0000000..7d9b4fd
--- /dev/null
+++ b/include/mme-app/msgHandlers/s6MsgHandler.h
@@ -0,0 +1,31 @@
+/*
+ * s6MsgHandler.h
+ *
+ * Created on: Jun 5, 2019
+ * Author: Anjana_Sreekumar
+ */
+
+#ifndef INCLUDE_MME_APP_MSGHANDLERS_S6MSGHANDLER_H_
+#define INCLUDE_MME_APP_MSGHANDLERS_S6MSGHANDLER_H_
+
+#include "msgType.h"
+#include <msgBuffer.h>
+
+class S6MsgHandler {
+public:
+ static S6MsgHandler* Instance();
+ virtual ~S6MsgHandler();
+
+ void handleS6Message_v(cmn::utils::MsgBuffer* msgBuf);
+
+private:
+ S6MsgHandler();
+
+ void handleAuthInfoAnswer_v(cmn::utils::MsgBuffer* msgData_p, uint32_t ueIdx);
+ void handleUpdateLocationAnswer_v(cmn::utils::MsgBuffer* msgData_p, uint32_t ueIdx);
+ void handlePurgeAnswer_v(cmn::utils::MsgBuffer* msgData_p, uint32_t ueIdx);
+ void handleCancelLocationRequest_v(cmn::utils::MsgBuffer* msgData_p);
+
+};
+
+#endif /* INCLUDE_MME_APP_MSGHANDLERS_S6MSGHANDLER_H_ */
diff --git a/include/mme-app/procedureStats.h b/include/mme-app/procedureStats.h
new file mode 100644
index 0000000..e9501fe
--- /dev/null
+++ b/include/mme-app/procedureStats.h
@@ -0,0 +1,54 @@
+#ifndef PROCEDURE_STATS_H
+#define PROCEDURE_STATS_H
+namespace mme
+{
+ class ProcedureStats
+ {
+ public:
+ static int num_of_air_sent;
+ static int num_of_ulr_sent;
+ static int num_of_processed_aia;
+ static int num_of_processed_ula;
+ static int num_of_auth_req_to_ue_sent;
+ static int num_of_processed_auth_response;
+ static int num_of_sec_mode_cmd_to_ue_sent;
+ static int num_of_processed_sec_mode_resp;
+ static int num_of_esm_info_req_to_ue_sent;
+ static int num_of_handled_esm_info_resp;
+ static int num_of_cs_req_to_sgw_sent;
+ static int num_of_processed_cs_resp;
+ static int num_of_init_ctxt_req_to_ue_sent;
+ static int num_of_processed_init_ctxt_resp;
+ static int num_of_mb_req_to_sgw_sent;
+ static int num_of_processed_attach_cmp_from_ue;
+ static int num_of_processed_mb_resp;
+ static int num_of_attach_done;
+ static int num_of_del_session_req_sent;
+ static int num_of_purge_req_sent;
+ static int num_of_processed_del_session_resp;
+ static int num_of_processed_pur_resp;
+ static int num_of_detach_accept_to_ue_sent;
+ static int num_of_processed_detach_accept;
+ static int num_of_ue_ctxt_release;
+ static int num_of_processed_ctxt_rel_resp;
+ static int num_of_subscribers_attached;
+ static int num_of_rel_access_bearer_req_sent;
+ static int num_of_rel_access_bearer_resp_received;
+ static int num_of_s1_rel_req_received;
+ static int num_of_s1_rel_cmd_sent;
+ static int num_of_s1_rel_comp_received;
+ static int num_of_clr_received;
+ static int num_of_cla_sent;
+ static int num_of_detach_req_to_ue_sent;
+ static int num_of_detach_accept_from_ue;
+ static int total_num_of_subscribers;
+ static int num_of_subscribers_detached;
+ static int num_of_ddn_received;
+ static int num_of_service_request_received;
+ static int num_of_ddn_ack_sent;
+ static int num_of_tau_response_to_ue_sent;
+
+
+ };
+};
+#endif
diff --git a/include/mme-app/secUtils.h b/include/mme-app/secUtils.h
new file mode 100644
index 0000000..14abb3f
--- /dev/null
+++ b/include/mme-app/secUtils.h
@@ -0,0 +1,12 @@
+class SecUtils
+{
+ public:
+ static void create_integrity_key(unsigned char *kasme, unsigned char *int_key);
+
+ static void create_kenb_key(unsigned char *kasme, unsigned char *kenb_key,
+ unsigned int seq_no);
+
+ static void calculate_hmac_sha256(const unsigned char *input_data,
+ int input_data_len, const unsigned char *key,
+ int key_length, void *output, unsigned int *out_len);
+};
diff --git a/include/mme-app/structs.h b/include/mme-app/structs.h
new file mode 100644
index 0000000..9420b0e
--- /dev/null
+++ b/include/mme-app/structs.h
@@ -0,0 +1,182 @@
+/*
+ * 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 STRUCTS_H_
+#define STRUCTS_H_
+
+#include <iostream>
+#include "msgType.h"
+#include "s1ap_structs.h"
+#include "ue_table.h"
+#include "s11_structs.h"
+#include <utils/mmeProcedureTypes.h>
+
+
+class Tai
+{
+ public:
+ Tai();
+ Tai( const TAI& tai_i );
+ ~Tai();
+ void operator = ( const Tai& tai_i );
+ public:
+ TAI tai_m;
+};
+
+class Cgi
+{
+ public:
+ Cgi();
+ Cgi( const CGI& cgi_i );
+ ~Cgi();
+ void operator = ( const Cgi& cgi_i );
+ public:
+ CGI cgi_m;
+};
+
+class Stmsi
+{
+ public:
+ Stmsi();
+ Stmsi( const STMSI& stmsi_i );
+ ~Stmsi();
+ void operator = ( const Stmsi& stmsi_i );
+ public:
+ STMSI stmsi_m;
+};
+
+
+class Arp
+{
+ public:
+ Arp();
+ Arp( const ARP& arp_i );
+ ~Arp();
+ void operator = ( const Arp& arp_i );
+ public:
+ ARP arp_m;
+};
+
+class Ms_net_capab
+{
+ public:
+ Ms_net_capab();
+ Ms_net_capab( const MS_net_capab& ms_net_capb_i );
+ ~Ms_net_capab();
+ void operator = ( const Ms_net_capab& ms_net_capb_i );
+ public:
+ MS_net_capab ms_net_capab_m;
+};
+
+class Ue_net_capab
+{
+ public:
+ Ue_net_capab();
+ Ue_net_capab( const UE_net_capab& ue_net_capab_i );
+ ~Ue_net_capab();
+ void operator = ( const Ue_net_capab& ue_net_capab_i );
+ public:
+ UE_net_capab ue_net_capab_m;
+};
+
+class Secinfo
+{
+ public:
+ Secinfo();
+ Secinfo( const secinfo& secinfo_i );
+ ~Secinfo();
+ void operator = ( const Secinfo& secinfo_i );
+ public:
+ secinfo secinfo_m;
+};
+
+class Ambr
+{
+ public:
+ Ambr();
+ Ambr( const AMBR& ambr_i );
+ ~Ambr();
+ void operator = ( const Ambr& ambr_i );
+ public:
+ AMBR ambr_m;
+};
+
+class E_utran_sec_vector
+{
+ public:
+ E_utran_sec_vector();
+ E_utran_sec_vector( const E_UTRAN_sec_vector& secinfo_i );
+ ~E_utran_sec_vector();
+ void operator = ( const E_utran_sec_vector& secinfo_i );
+ friend std::ostream& operator << ( std::ostream& os, const E_utran_sec_vector& data_i );
+ public:
+ E_UTRAN_sec_vector* AiaSecInfo_mp;
+};
+
+class Fteid
+{
+ public:
+ Fteid();
+ Fteid( const fteid& fteid_i );
+ ~Fteid();
+ void operator = ( const Fteid& fteid_i );
+ public:
+ fteid fteid_m;
+};
+
+class Paa
+{
+ public:
+ Paa();
+ Paa( const PAA& paa_i );
+ ~Paa();
+ void operator = ( const Paa& paa_i );
+ public:
+ PAA paa_m;
+};
+
+class Apn_name
+{
+ public:
+ Apn_name();
+ Apn_name( const apn_name& apn_name_i );
+ ~Apn_name();
+ void operator = ( const Apn_name& apn_name_i );
+ public:
+ apn_name apnname_m;
+};
+
+class DigitRegister15
+{
+ public:
+ DigitRegister15();
+ void convertToBcdArray(uint8_t* arrayOut) const;
+ void convertFromBcdArray(const uint8_t* bcdArrayIn);
+ void setImsiDigits( uint8_t* digitsArrayIn );
+ void getImsiDigits( uint8_t* digitsArrayIn ) const;
+ bool isValid() const;
+ void operator = ( const DigitRegister15& data_i );
+ bool operator == ( const DigitRegister15& data_i )const;
+ bool operator < ( const DigitRegister15& data_i )const;
+
+ friend std::ostream& operator << ( std::ostream& os, const DigitRegister15& data_i );
+
+ private:
+
+ uint8_t digitsArray[15];
+};
+
+#endif
diff --git a/include/mme-app/ue_table.h b/include/mme-app/ue_table.h
new file mode 100644
index 0000000..a038ac0
--- /dev/null
+++ b/include/mme-app/ue_table.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd.
+ * Copyright (c) 2017 Intel Corporation
+ *
+ * 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 __UE_TABLE_H_
+#define __UE_TABLE_H_
+
+#include "s1ap_structs.h"
+#include "s11_structs.h"
+#include "msgType.h"
+
+struct secinfo {
+ uint8_t int_key[NAS_INT_KEY_SIZE];
+ uint8_t kenb_key[KENB_SIZE];
+};
+
+struct AMBR {
+ unsigned int max_requested_bw_dl;
+ unsigned int max_requested_bw_ul;
+};
+
+#endif /*ue_table*/
diff --git a/include/mme-app/utils/defaultMmeProcedureCtxt.h b/include/mme-app/utils/defaultMmeProcedureCtxt.h
new file mode 100644
index 0000000..5fb4204
--- /dev/null
+++ b/include/mme-app/utils/defaultMmeProcedureCtxt.h
@@ -0,0 +1,37 @@
+/*
+ * 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 INCLUDE_MME_APP_UTILS_DEFAULTMMEPROCEDURECTXT_H_
+#define INCLUDE_MME_APP_UTILS_DEFAULTMMEPROCEDURECTXT_H_
+
+#include <contextManager/dataBlocks.h>
+
+namespace mme
+{
+class DefaultMmeProcedureCtxt : public MmeProcedureCtxt
+{
+public:
+ static DefaultMmeProcedureCtxt* Instance();
+
+private:
+ DefaultMmeProcedureCtxt();
+ ~DefaultMmeProcedureCtxt();
+};
+}
+
+
+
+#endif /* INCLUDE_MME_APP_UTILS_DEFAULTMMEPROCEDURECTXT_H_ */
diff --git a/include/mme-app/utils/mmeCauseTypes.h b/include/mme-app/utils/mmeCauseTypes.h
new file mode 100644
index 0000000..6535119
--- /dev/null
+++ b/include/mme-app/utils/mmeCauseTypes.h
@@ -0,0 +1,32 @@
+/*
+ * 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 INCLUDE_MME_APP_UTILS_MMECAUSETYPES_H_
+#define INCLUDE_MME_APP_UTILS_MMECAUSETYPES_H_
+
+#include <stdint.h>
+
+namespace mme
+{
+
+typedef uint32_t MmeErrorCause;
+
+const MmeErrorCause noError_c = 0x00;
+const MmeErrorCause ueContextNotFound_c = 0x01;
+
+}
+
+#endif /* INCLUDE_MME_APP_UTILS_MMECAUSETYPES_H_ */
diff --git a/include/mme-app/utils/mmeCommonUtils.h b/include/mme-app/utils/mmeCommonUtils.h
new file mode 100644
index 0000000..cc40620
--- /dev/null
+++ b/include/mme-app/utils/mmeCommonUtils.h
@@ -0,0 +1,59 @@
+/*
+ * 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 INCLUDE_MME_APP_UTILS_MMECOMMONUTILS_H_
+#define INCLUDE_MME_APP_UTILS_MMECOMMONUTILS_H_
+
+#include <stdint.h>
+#include <utils/mmeProcedureTypes.h>
+#include <msgType.h>
+
+struct guti;
+
+namespace SM
+{
+ class ControlBlock;
+}
+
+namespace cmn
+{
+ namespace utils
+ {
+ class MsgBuffer;
+ }
+}
+
+namespace mme
+{
+ class MmeProcedureCtxt;
+ class UEContext;
+ class MmeCommonUtils
+ {
+ public:
+ static bool isLocalGuti(const guti& guti_r);
+ static uint32_t allocateMtmsi();
+
+ static SM::ControlBlock* findControlBlock(cmn::utils::MsgBuffer* msgData_p);
+
+ static AttachType getAttachType(UEContext* ueCtxt_p, const struct ue_attach_info& attachReqMsg_r);
+
+ private:
+ MmeCommonUtils();
+ ~MmeCommonUtils();
+ };
+}
+
+#endif /* INCLUDE_MME_APP_UTILS_MMECOMMONUTILS_H_ */
diff --git a/include/mme-app/utils/mmeContextManagerUtils.h b/include/mme-app/utils/mmeContextManagerUtils.h
new file mode 100644
index 0000000..4f844a5
--- /dev/null
+++ b/include/mme-app/utils/mmeContextManagerUtils.h
@@ -0,0 +1,53 @@
+/*
+ * 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 INCLUDE_MME_APP_UTILS_MMECONTEXTMANAGERUTILS_H_
+#define INCLUDE_MME_APP_UTILS_MMECONTEXTMANAGERUTILS_H_
+
+#include <utils/mmeProcedureTypes.h>
+#include <stdint.h>
+
+namespace SM
+{
+class ControlBlock;
+}
+
+namespace mme
+{
+
+class MmeProcedureCtxt;
+class MmeContextManagerUtils
+{
+public:
+
+ static MmeProcedureCtxt* findProcedureCtxt(SM::ControlBlock& cb_r, ProcedureType procType);
+
+ static bool deleteProcedureCtxt(MmeProcedureCtxt* procedure_p);
+ static bool deallocateProcedureCtxt(SM::ControlBlock& cb_r, ProcedureType procType);
+ static bool deallocateAllProcedureCtxts(SM::ControlBlock& cb_r);
+
+ static void deleteUEContext(uint32_t cbIndex);
+ static void deleteSessionContext(SM::ControlBlock& cb_r);
+
+private:
+ MmeContextManagerUtils();
+ ~MmeContextManagerUtils();
+};
+}
+
+
+
+#endif /* INCLUDE_MME_APP_UTILS_MMECONTEXTMANAGERUTILS_H_ */
diff --git a/include/mme-app/utils/mmeProcedureTypes.h b/include/mme-app/utils/mmeProcedureTypes.h
new file mode 100644
index 0000000..2c7c620
--- /dev/null
+++ b/include/mme-app/utils/mmeProcedureTypes.h
@@ -0,0 +1,80 @@
+/*
+ * 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 INCLUDE_MME_APP_UTILS_MMEPROCEDURETYPES_H_
+#define INCLUDE_MME_APP_UTILS_MMEPROCEDURETYPES_H_
+
+namespace mme
+{
+ enum AttachType
+ {
+ invalidAttachType_c,
+
+ imsiAttach_c,
+ knownGutiAttach_c,
+ unknownGutiAttach_c,
+
+ maxAttachType_c
+ };
+
+ enum ProcedureType
+ {
+ invalidProcedureType_c,
+
+ defaultMmeProcedure_c,
+ attach_c,
+ detach_c,
+ s1Release_c,
+ serviceRequest_c,
+ tau_c,
+
+ maxProcedureType_c
+ };
+
+ enum DetachType
+ {
+ invalidDetachType_c,
+
+ mmeInitDetach_c,
+ hssInitDetach_c,
+ ueInitDetach_c,
+
+ maxDetachtype_c
+ };
+
+ enum UE_State_e
+ {
+ InvalidState,
+
+ NoState,
+ EpsAttached,
+ EpsDetached,
+
+ maxUeState
+ };
+ using EmmState = UE_State_e;
+
+ enum PagingTrigger
+ {
+ none_c,
+ hssInit_c,
+ ddnInit_c,
+ maxPagingTrigger_c
+ };
+
+}
+
+#endif /* INCLUDE_MME_APP_UTILS_MMEPROCEDURETYPES_H_ */