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_ */