├── .ci └── config │ ├── mme.json │ ├── mme.json.license │ ├── s11.json │ ├── s11.json.license │ ├── s1ap.json │ ├── s1ap.json.license │ ├── s6a.json │ ├── s6a.json.license │ ├── s6a_fd.conf │ └── s6a_fd.conf.license ├── .fossa.yml ├── .gitignore ├── Dockerfile ├── Documentation ├── Documentation.md ├── images │ ├── action_handler.png │ ├── action_handler_cpp.png │ ├── application_building_blocks.png │ ├── block_pool_manager.png │ ├── code_gen.png │ ├── ctxt_manager_code.png │ ├── data_block.png │ ├── data_blocks_cpp.png │ ├── data_blocks_h.png │ ├── data_blocks_h_var.png │ ├── data_group_manager.png │ ├── data_structure_arrangement.png │ ├── enum_types.png │ ├── generation_item.png │ ├── json_data_model.png │ ├── manager_cpp.png │ ├── manager_h.png │ ├── memory_pool_manager.png │ ├── mmeSmDefs_cpp.png │ ├── mmeSmDefs_h.png │ ├── socket_bind.png │ ├── socket_create.png │ ├── state_guard_timer.png │ ├── state_guard_timer_disabled.png │ ├── state_machine_design.png │ ├── state_machine_framework.jpg │ ├── state_machine_framework.png │ ├── state_machine_runtime.png │ ├── state_mc_code.png │ ├── state_name_cpp.png │ ├── state_name_h.png │ ├── subs_data_group_manager.png │ ├── subs_data_group_mgr_cpp.png │ ├── subs_data_group_mgr_h.png │ ├── subs_data_group_mgr_h_var.png │ └── thrading_model.png └── mmeStatsKPI.md ├── LICENSE ├── Makefile ├── Makefile.common ├── README.md ├── VERSION ├── include ├── cmn │ ├── basicTypes.h │ ├── blockingCircularFifo.h │ ├── cTime.h │ ├── circularFifo.h │ ├── componentDb.h │ ├── dataGroupManager.h │ ├── debug.h │ ├── eventMessage.h │ ├── ipcChannel.h │ ├── ipcTypes.h │ ├── memPoolManager.h │ ├── msgBuffer.h │ ├── timeoutManager.h │ ├── timerQueue.h │ ├── tipcSocket.h │ └── tipcTypes.h ├── common │ ├── 3gpp_24008.h │ ├── common_proc_info.h │ ├── defines.h │ ├── err_codes.h │ ├── f8.h │ ├── f9.h │ ├── hss_message.h │ ├── ipc_api.h │ ├── json_data.h │ ├── log.h │ ├── monitor_config.h │ ├── monitor_message.h │ ├── msgType.h │ ├── nas_headers.h │ ├── nas_structs.h │ ├── s11_structs.h │ ├── s1_common_types.h │ ├── s1ap_error.h │ ├── s1ap_structs.h │ ├── s6_common_types.h │ ├── sec.h │ ├── snow_3g.h │ ├── stimer.h │ ├── thread_pool.h │ ├── tpool_queue.h │ ├── unix_conn.h │ └── unix_sock.h ├── mme-app │ ├── actionHandlers │ │ └── actionHandlers.h │ ├── contextManager │ │ ├── bearerContextManager.h │ │ ├── dataBlocks.h │ │ ├── mmContextManager.h │ │ ├── mmeAttachProcedureCtxtManager.h │ │ ├── mmeDetachProcedureCtxtManager.h │ │ ├── mmeErabModIndProcedureCtxtManager.h │ │ ├── mmeProcedureCtxtManager.h │ │ ├── mmeS1RelProcedureCtxtManager.h │ │ ├── mmeSmCreateBearerProcCtxtManager.h │ │ ├── mmeSmDeleteBearerProcCtxtManager.h │ │ ├── mmeSvcReqProcedureCtxtManager.h │ │ ├── mmeTauProcedureCtxtManager.h │ │ ├── s1HandoverProcedureContextManager.h │ │ ├── sessionContextManager.h │ │ ├── smDedActProcCtxtManager.h │ │ ├── smDedDeActProcCtxtManager.h │ │ ├── subsDataGroupManager.h │ │ ├── uEContextManager.h │ │ ├── x2HOMmProcedureContextManager.h │ │ └── x2HOSmProcedureContextManager.h │ ├── hash.h │ ├── interfaces │ │ └── mmeIpcInterface.h │ ├── mmeSmDefs.h │ ├── mmeStates │ │ ├── attachStates.h │ │ ├── createBearerProcedureStates.h │ │ ├── dedBearerActProcedureStates.h │ │ ├── dedBearerDeactProcedureStates.h │ │ ├── defaultMmeProcedureStates.h │ │ ├── deleteBearerProcedureStates.h │ │ ├── erabModIndicationStates.h │ │ ├── networkInitDetachStates.h │ │ ├── s1HandoverStates.h │ │ ├── s1ReleaseStates.h │ │ ├── serviceRequestStates.h │ │ ├── stateFactory.h │ │ ├── tauStates.h │ │ ├── ueInitDetachStates.h │ │ ├── x2HandoverMmStates.h │ │ └── x2HandoverSmStates.h │ ├── mmeStatsPromClient.h │ ├── mme_app.h │ ├── mmeappResthandler.h │ ├── monSubDefs.h │ ├── monitorSubscriber.h │ ├── msgHandlers │ │ ├── gtpMsgHandler.h │ │ ├── s1MsgHandler.h │ │ └── s6MsgHandler.h │ ├── procedureStats.h │ ├── secUtils.h │ ├── structs.h │ └── utils │ │ ├── defaultMmeProcedureCtxt.h │ │ ├── mmeCauseUtils.h │ │ ├── mmeCommonUtils.h │ │ ├── mmeContextManagerUtils.h │ │ ├── mmeGtpMsgUtils.h │ │ ├── mmeNasUtils.h │ │ ├── mmeProcedureTypes.h │ │ ├── mmeS1MsgUtils.h │ │ ├── mmeStatesUtils.h │ │ ├── mmeTimerTypes.h │ │ └── mmeTimerUtils.h ├── s11 │ ├── gtpv2c.h │ ├── gtpv2c_ie.h │ ├── s11.h │ ├── s11_config.h │ └── s11_options.h ├── s1ap │ ├── enb.h │ ├── main.h │ ├── options.h │ ├── s1ap.h │ ├── s1apContextManager │ │ ├── enbContextManager.h │ │ ├── s1apContextWrapper.h │ │ ├── s1apContextWrapper_c.h │ │ ├── s1apDataBlocks.h │ │ ├── s1apDataGroupManager.h │ │ └── s1apResthandler.h │ ├── s1ap_config.h │ ├── s1ap_ie.h │ ├── s1ap_msg_codes.h │ └── sctp_conn.h ├── s6a │ ├── s6a.h │ ├── s6a_config.h │ └── s6a_fd.h └── stateMachineFwk │ ├── actionTable.h │ ├── controlBlock.h │ ├── event.h │ ├── permDataBlock.h │ ├── procedureQueue.h │ ├── smTypes.h │ ├── state.h │ ├── stateMachineEngine.h │ └── tempDataBlock.h ├── install_builddeps.sh ├── install_rundeps.sh ├── patches └── pistache.patch.1.txt ├── pyserver ├── Dockerfile ├── conf │ └── mme_exporter.json ├── monitor_client.py └── templates │ └── monitor_tool.html ├── scripts ├── GtpV2StackCodeGen │ ├── README.txt │ ├── dataModel │ │ └── prototypeV8.xlsx │ ├── datatypeCodeGen.py │ ├── groupedIECodeGen.py │ ├── iECodeGen.py │ ├── msgCodeGen.py │ ├── startCodeGen.py │ ├── tts │ │ ├── datatypetemplate.cpp.tt │ │ ├── datatypetemplate.h.tt │ │ ├── grpIeDataTypetemplate.h.tt │ │ ├── grpieinsttemplate.cpp.tt │ │ ├── grpieinsttemplate.h.tt │ │ ├── grpietemplate.cpp.tt │ │ ├── grpietemplate.h.tt │ │ ├── ieDataTypetemplate.h.tt │ │ ├── iefactorytemplate.cpp.tt │ │ ├── iefactorytemplate.h.tt │ │ ├── ietemplate.cpp.tt │ │ ├── ietemplate.h.tt │ │ ├── makefiletemplate.tt │ │ ├── msgDataTypetemplate.h.tt │ │ ├── msgDecode.tt │ │ ├── msgEncode.tt │ │ ├── msgfactorytemplate.cpp.tt │ │ ├── msgfactorytemplate.h.tt │ │ ├── msgtemplate.cpp.tt │ │ ├── msgtemplate.h.tt │ │ ├── stacktemplate.cpp.tt │ │ ├── stacktemplate.h.tt │ │ └── v2DataTypetemplate.h.tt │ └── xlUtils.py ├── SMCodeGen │ ├── README.txt │ ├── __init__.py │ ├── codeGen.py │ ├── dataModels │ │ ├── ctxtManagerAppModel.json │ │ ├── generationItem.json │ │ ├── s1apCtxtManagerAppModel.json │ │ └── stateMachineAppModel.json │ ├── templates │ │ ├── ctxtManagerTmpls │ │ │ ├── arrayAPI.tt │ │ │ ├── arrayAPIHeader.tt │ │ │ ├── blockPoolManager.cpp.tt │ │ │ ├── blockPoolManager.h.tt │ │ │ ├── childAPICpp.tt │ │ │ ├── childAPIHeader.tt │ │ │ ├── commonMacro.tt │ │ │ ├── dataBlocks.cpp.tt │ │ │ ├── dataBlocks.h.tt │ │ │ ├── getterSetterAPICpp.tt │ │ │ ├── getterSetterAPIHeader.tt │ │ │ ├── listAPI.tt │ │ │ ├── listAPIHeader.tt │ │ │ ├── sharedPtrAPICpp.tt │ │ │ ├── sharedPtrAPIHeader.tt │ │ │ ├── subsDataGroupManager.cpp.tt │ │ │ ├── subsDataGroupManager.h.tt │ │ │ ├── vectorAPI.tt │ │ │ └── vectorAPIHeader.tt │ │ └── stateMachineTmpls │ │ │ ├── actionHandlers.cpp.tt │ │ │ ├── actionHandlers.h.tt │ │ │ ├── macros.tt │ │ │ ├── mmeSmDefs.cpp.tt │ │ │ ├── mmeSmDefs.h.tt │ │ │ ├── state.cpp.tt │ │ │ ├── state.h.tt │ │ │ ├── stateFactory.cpp.tt │ │ │ └── stateFactory.h.tt │ └── utils.py └── prometheus │ ├── README.md │ ├── autocodegen.py │ ├── mmeStats.json │ └── mmeStats.json.license └── src ├── cmn ├── Makefile ├── cTime.cpp ├── componentDb.cpp ├── dataGroupManager.cpp ├── debug.cpp ├── ipcChannel.cpp ├── msgBuffer.cpp ├── timeoutManager.cpp ├── timerQueue.cpp └── tipcSocket.cpp ├── common ├── Makefile ├── backtrace.c ├── f8.c ├── f9.c ├── ipc_api.c ├── json_parser.c ├── log.c ├── monitor_config.c ├── snow_3g.c ├── thread_pool.c ├── tpool_queue.c ├── unix_conn.c └── unix_sock.c ├── gtpV2Codec ├── Makefile ├── gtpCauseTypes.h ├── gtpV2Stack.cpp ├── gtpV2Stack.h ├── gtpV2StackWrappers.cpp ├── gtpV2StackWrappers.h ├── ieClasses │ ├── additionalProtocolConfigurationOptionsIe.cpp │ ├── additionalProtocolConfigurationOptionsIe.h │ ├── ambrIe.cpp │ ├── ambrIe.h │ ├── ambrMmbrIe.cpp │ ├── ambrMmbrIe.h │ ├── apnAndRelativeCapacityIe.cpp │ ├── apnAndRelativeCapacityIe.h │ ├── apnIe.cpp │ ├── apnIe.h │ ├── apnRestrictionIe.cpp │ ├── apnRestrictionIe.h │ ├── arpIe.cpp │ ├── arpIe.h │ ├── bearerContextIe.cpp │ ├── bearerContextIe.h │ ├── bearerContextsCreatedInCreateSessionResponse.cpp │ ├── bearerContextsCreatedInCreateSessionResponse.h │ ├── bearerContextsInCreateBearerRequest.cpp │ ├── bearerContextsInCreateBearerRequest.h │ ├── bearerContextsInCreateBearerResponse.cpp │ ├── bearerContextsInCreateBearerResponse.h │ ├── bearerContextsInDeleteBearerResponse.cpp │ ├── bearerContextsInDeleteBearerResponse.h │ ├── bearerContextsMarkedForRemovalInCreateSessionResponse.cpp │ ├── bearerContextsMarkedForRemovalInCreateSessionResponse.h │ ├── bearerContextsMarkedForRemovalInModifyBearerResponse.cpp │ ├── bearerContextsMarkedForRemovalInModifyBearerResponse.h │ ├── bearerContextsModifiedInModifyBearerResponse.cpp │ ├── bearerContextsModifiedInModifyBearerResponse.h │ ├── bearerContextsToBeCreatedInCreateSessionRequest.cpp │ ├── bearerContextsToBeCreatedInCreateSessionRequest.h │ ├── bearerContextsToBeModifiedInModifyBearerRequest.cpp │ ├── bearerContextsToBeModifiedInModifyBearerRequest.h │ ├── bearerContextsToBeRemovedInCreateSessionRequest.cpp │ ├── bearerContextsToBeRemovedInCreateSessionRequest.h │ ├── bearerContextsToBeRemovedInModifyBearerRequest.cpp │ ├── bearerContextsToBeRemovedInModifyBearerRequest.h │ ├── bearerFlagsIe.cpp │ ├── bearerFlagsIe.h │ ├── bearerQosIe.cpp │ ├── bearerQosIe.h │ ├── bearerTftIe.cpp │ ├── bearerTftIe.h │ ├── causeIe.cpp │ ├── causeIe.h │ ├── changeReportingActionIe.cpp │ ├── changeReportingActionIe.h │ ├── chargingCharacteristicsIe.cpp │ ├── chargingCharacteristicsIe.h │ ├── chargingIdIe.cpp │ ├── chargingIdIe.h │ ├── cnOperatorSelectionEntityIe.cpp │ ├── cnOperatorSelectionEntityIe.h │ ├── counterIe.cpp │ ├── counterIe.h │ ├── csgInformationReportingActionIe.cpp │ ├── csgInformationReportingActionIe.h │ ├── dataTypeCodecUtils.cpp │ ├── dataTypeCodecUtils.h │ ├── delayValueIe.cpp │ ├── delayValueIe.h │ ├── ebiIe.cpp │ ├── ebiIe.h │ ├── epcTimerIe.cpp │ ├── epcTimerIe.h │ ├── epcoIe.cpp │ ├── epcoIe.h │ ├── epdgsOverloadControlInformationInModifyBearerRequest.cpp │ ├── epdgsOverloadControlInformationInModifyBearerRequest.h │ ├── fContainerIe.cpp │ ├── fContainerIe.h │ ├── fTeidIe.cpp │ ├── fTeidIe.h │ ├── failedBearerContextsInDeleteBearerRequest.cpp │ ├── failedBearerContextsInDeleteBearerRequest.h │ ├── fqCsidIe.cpp │ ├── fqCsidIe.h │ ├── fqdnIe.cpp │ ├── fqdnIe.h │ ├── gtpV2DataTypes.h │ ├── gtpV2GrpIeDataTypes.h │ ├── gtpV2IeDataTypes.h │ ├── gtpV2IeFactory.cpp │ ├── gtpV2IeFactory.h │ ├── henbInformationReportingIe.cpp │ ├── henbInformationReportingIe.h │ ├── imsiIe.cpp │ ├── imsiIe.h │ ├── indicationIe.cpp │ ├── indicationIe.h │ ├── integerNumberIe.cpp │ ├── integerNumberIe.h │ ├── ip4cpIe.cpp │ ├── ip4cpIe.h │ ├── ipAddressIe.cpp │ ├── ipAddressIe.h │ ├── loadControlInformationIe.cpp │ ├── loadControlInformationIe.h │ ├── localDistinguishedNameIe.cpp │ ├── localDistinguishedNameIe.h │ ├── manual │ │ ├── dataTypeCodecUtils_manual.cpp │ │ ├── gtpV2DataTypes_Manual.h │ │ ├── gtpV2GroupedIe.cpp │ │ ├── gtpV2GroupedIe.h │ │ ├── gtpV2Ie.cpp │ │ └── gtpV2Ie.h │ ├── mappedUeUsageTypeIe.cpp │ ├── mappedUeUsageTypeIe.h │ ├── maximumPacketLossRateIe.cpp │ ├── maximumPacketLossRateIe.h │ ├── meiIe.cpp │ ├── meiIe.h │ ├── metricIe.cpp │ ├── metricIe.h │ ├── millisecondTimeStampIe.cpp │ ├── millisecondTimeStampIe.h │ ├── mmeS4SgsnsOverloadControlInformationInCreateBearerResponse.cpp │ ├── mmeS4SgsnsOverloadControlInformationInCreateBearerResponse.h │ ├── mmeS4SgsnsOverloadControlInformationInCreateSessionRequest.cpp │ ├── mmeS4SgsnsOverloadControlInformationInCreateSessionRequest.h │ ├── mmeS4SgsnsOverloadControlInformationInDeleteBearerResponse.cpp │ ├── mmeS4SgsnsOverloadControlInformationInDeleteBearerResponse.h │ ├── mmeS4SgsnsOverloadControlInformationInDeleteSessionRequest.cpp │ ├── mmeS4SgsnsOverloadControlInformationInDeleteSessionRequest.h │ ├── mmeS4SgsnsOverloadControlInformationInModifyBearerRequest.cpp │ ├── mmeS4SgsnsOverloadControlInformationInModifyBearerRequest.h │ ├── msisdnIe.cpp │ ├── msisdnIe.h │ ├── nodeFeaturesIe.cpp │ ├── nodeFeaturesIe.h │ ├── nodeIdentifierIe.cpp │ ├── nodeIdentifierIe.h │ ├── nodeTypeIe.cpp │ ├── nodeTypeIe.h │ ├── overloadControlInformationIe.cpp │ ├── overloadControlInformationIe.h │ ├── paaIe.cpp │ ├── paaIe.h │ ├── pagingAndServiceInformationIe.cpp │ ├── pagingAndServiceInformationIe.h │ ├── pcoIe.cpp │ ├── pcoIe.h │ ├── pdnTypeIe.cpp │ ├── pdnTypeIe.h │ ├── pgwsApnLevelLoadControlInformationInCreateBearerRequest.cpp │ ├── pgwsApnLevelLoadControlInformationInCreateBearerRequest.h │ ├── pgwsApnLevelLoadControlInformationInCreateSessionResponse.cpp │ ├── pgwsApnLevelLoadControlInformationInCreateSessionResponse.h │ ├── pgwsApnLevelLoadControlInformationInDeleteBearerRequest.cpp │ ├── pgwsApnLevelLoadControlInformationInDeleteBearerRequest.h │ ├── pgwsApnLevelLoadControlInformationInDeleteSessionResponse.cpp │ ├── pgwsApnLevelLoadControlInformationInDeleteSessionResponse.h │ ├── pgwsApnLevelLoadControlInformationInModifyBearerResponse.cpp │ ├── pgwsApnLevelLoadControlInformationInModifyBearerResponse.h │ ├── pgwsNodeLevelLoadControlInformationInCreateBearerRequest.cpp │ ├── pgwsNodeLevelLoadControlInformationInCreateBearerRequest.h │ ├── pgwsNodeLevelLoadControlInformationInCreateSessionResponse.cpp │ ├── pgwsNodeLevelLoadControlInformationInCreateSessionResponse.h │ ├── pgwsNodeLevelLoadControlInformationInDeleteBearerRequest.cpp │ ├── pgwsNodeLevelLoadControlInformationInDeleteBearerRequest.h │ ├── pgwsNodeLevelLoadControlInformationInDeleteSessionResponse.cpp │ ├── pgwsNodeLevelLoadControlInformationInDeleteSessionResponse.h │ ├── pgwsNodeLevelLoadControlInformationInModifyBearerResponse.cpp │ ├── pgwsNodeLevelLoadControlInformationInModifyBearerResponse.h │ ├── pgwsOverloadControlInformationInCreateBearerRequest.cpp │ ├── pgwsOverloadControlInformationInCreateBearerRequest.h │ ├── pgwsOverloadControlInformationInCreateSessionResponse.cpp │ ├── pgwsOverloadControlInformationInCreateSessionResponse.h │ ├── pgwsOverloadControlInformationInDeleteBearerRequest.cpp │ ├── pgwsOverloadControlInformationInDeleteBearerRequest.h │ ├── pgwsOverloadControlInformationInDeleteSessionResponse.cpp │ ├── pgwsOverloadControlInformationInDeleteSessionResponse.h │ ├── pgwsOverloadControlInformationInModifyBearerResponse.cpp │ ├── pgwsOverloadControlInformationInModifyBearerResponse.h │ ├── portNumberIe.cpp │ ├── portNumberIe.h │ ├── presenceReportingAreaActionIe.cpp │ ├── presenceReportingAreaActionIe.h │ ├── ptiIe.cpp │ ├── ptiIe.h │ ├── ranNasCauseIe.cpp │ ├── ranNasCauseIe.h │ ├── ratTypeIe.cpp │ ├── ratTypeIe.h │ ├── recoveryIe.cpp │ ├── recoveryIe.h │ ├── remoteUeContextConnectedInCreateSessionRequest.cpp │ ├── remoteUeContextConnectedInCreateSessionRequest.h │ ├── remoteUeContextIe.cpp │ ├── remoteUeContextIe.h │ ├── remoteUeIpInformationIe.cpp │ ├── remoteUeIpInformationIe.h │ ├── remoteUserIdIe.cpp │ ├── remoteUserIdIe.h │ ├── secondaryRatUsageDataReportIe.cpp │ ├── secondaryRatUsageDataReportIe.h │ ├── selectionModeIe.cpp │ ├── selectionModeIe.h │ ├── sequenceNumberIe.cpp │ ├── sequenceNumberIe.h │ ├── servingNetworkIe.cpp │ ├── servingNetworkIe.h │ ├── servingPlmnRateControlIe.cpp │ ├── servingPlmnRateControlIe.h │ ├── sgwsNodeLevelLoadControlInformationInCreateBearerRequest.cpp │ ├── sgwsNodeLevelLoadControlInformationInCreateBearerRequest.h │ ├── sgwsNodeLevelLoadControlInformationInCreateSessionResponse.cpp │ ├── sgwsNodeLevelLoadControlInformationInCreateSessionResponse.h │ ├── sgwsNodeLevelLoadControlInformationInDeleteBearerRequest.cpp │ ├── sgwsNodeLevelLoadControlInformationInDeleteBearerRequest.h │ ├── sgwsNodeLevelLoadControlInformationInDeleteSessionResponse.cpp │ ├── sgwsNodeLevelLoadControlInformationInDeleteSessionResponse.h │ ├── sgwsNodeLevelLoadControlInformationInDownlinkDataNotification.cpp │ ├── sgwsNodeLevelLoadControlInformationInDownlinkDataNotification.h │ ├── sgwsNodeLevelLoadControlInformationInModifyBearerResponse.cpp │ ├── sgwsNodeLevelLoadControlInformationInModifyBearerResponse.h │ ├── sgwsNodeLevelLoadControlInformationInReleaseAccessBearersResponse.cpp │ ├── sgwsNodeLevelLoadControlInformationInReleaseAccessBearersResponse.h │ ├── sgwsOverloadControlInformationInCreateBearerRequest.cpp │ ├── sgwsOverloadControlInformationInCreateBearerRequest.h │ ├── sgwsOverloadControlInformationInCreateBearerResponse.cpp │ ├── sgwsOverloadControlInformationInCreateBearerResponse.h │ ├── sgwsOverloadControlInformationInCreateSessionRequest.cpp │ ├── sgwsOverloadControlInformationInCreateSessionRequest.h │ ├── sgwsOverloadControlInformationInCreateSessionResponse.cpp │ ├── sgwsOverloadControlInformationInCreateSessionResponse.h │ ├── sgwsOverloadControlInformationInDeleteBearerRequest.cpp │ ├── sgwsOverloadControlInformationInDeleteBearerRequest.h │ ├── sgwsOverloadControlInformationInDeleteBearerResponse.cpp │ ├── sgwsOverloadControlInformationInDeleteBearerResponse.h │ ├── sgwsOverloadControlInformationInDeleteSessionRequest.cpp │ ├── sgwsOverloadControlInformationInDeleteSessionRequest.h │ ├── sgwsOverloadControlInformationInDeleteSessionResponse.cpp │ ├── sgwsOverloadControlInformationInDeleteSessionResponse.h │ ├── sgwsOverloadControlInformationInDownlinkDataNotification.cpp │ ├── sgwsOverloadControlInformationInDownlinkDataNotification.h │ ├── sgwsOverloadControlInformationInModifyBearerRequest.cpp │ ├── sgwsOverloadControlInformationInModifyBearerRequest.h │ ├── sgwsOverloadControlInformationInModifyBearerResponse.cpp │ ├── sgwsOverloadControlInformationInModifyBearerResponse.h │ ├── sgwsOverloadControlInformationInReleaseAccessBearersResponse.cpp │ ├── sgwsOverloadControlInformationInReleaseAccessBearersResponse.h │ ├── signallingPriorityIndicationIe.cpp │ ├── signallingPriorityIndicationIe.h │ ├── throttlingIe.cpp │ ├── throttlingIe.h │ ├── traceInformationIe.cpp │ ├── traceInformationIe.h │ ├── twanEpdgsOverloadControlInformationInCreateBearerResponse.cpp │ ├── twanEpdgsOverloadControlInformationInCreateBearerResponse.h │ ├── twanEpdgsOverloadControlInformationInCreateSessionRequest.cpp │ ├── twanEpdgsOverloadControlInformationInCreateSessionRequest.h │ ├── twanEpdgsOverloadControlInformationInDeleteBearerResponse.cpp │ ├── twanEpdgsOverloadControlInformationInDeleteBearerResponse.h │ ├── twanEpdgsOverloadControlInformationInDeleteSessionRequest.cpp │ ├── twanEpdgsOverloadControlInformationInDeleteSessionRequest.h │ ├── twanIdentifierIe.cpp │ ├── twanIdentifierIe.h │ ├── twanIdentifierTimestampIe.cpp │ ├── twanIdentifierTimestampIe.h │ ├── twmiIe.cpp │ ├── twmiIe.h │ ├── uciIe.cpp │ ├── uciIe.h │ ├── ueTimeZoneIe.cpp │ ├── ueTimeZoneIe.h │ ├── uliIe.cpp │ ├── uliIe.h │ ├── uliTimestampIe.cpp │ ├── uliTimestampIe.h │ ├── upFunctionSelectionIndicationFlagsIe.cpp │ └── upFunctionSelectionIndicationFlagsIe.h └── msgClasses │ ├── createBearerRequestMsg.cpp │ ├── createBearerRequestMsg.h │ ├── createBearerResponseMsg.cpp │ ├── createBearerResponseMsg.h │ ├── createSessionRequestMsg.cpp │ ├── createSessionRequestMsg.h │ ├── createSessionResponseMsg.cpp │ ├── createSessionResponseMsg.h │ ├── deleteBearerRequestMsg.cpp │ ├── deleteBearerRequestMsg.h │ ├── deleteBearerResponseMsg.cpp │ ├── deleteBearerResponseMsg.h │ ├── deleteSessionRequestMsg.cpp │ ├── deleteSessionRequestMsg.h │ ├── deleteSessionResponseMsg.cpp │ ├── deleteSessionResponseMsg.h │ ├── downlinkDataNotificationAcknowledgeMsg.cpp │ ├── downlinkDataNotificationAcknowledgeMsg.h │ ├── downlinkDataNotificationFailureIndicationMsg.cpp │ ├── downlinkDataNotificationFailureIndicationMsg.h │ ├── downlinkDataNotificationMsg.cpp │ ├── downlinkDataNotificationMsg.h │ ├── echoRequestMsg.cpp │ ├── echoRequestMsg.h │ ├── echoResponseMsg.cpp │ ├── echoResponseMsg.h │ ├── gtpV2MsgDataTypes.h │ ├── gtpV2MsgFactory.cpp │ ├── gtpV2MsgFactory.h │ ├── manual │ ├── gtpV2Message.cpp │ └── gtpV2Message.h │ ├── modifyBearerRequestMsg.cpp │ ├── modifyBearerRequestMsg.h │ ├── modifyBearerResponseMsg.cpp │ ├── modifyBearerResponseMsg.h │ ├── releaseAccessBearersRequestMsg.cpp │ ├── releaseAccessBearersRequestMsg.h │ ├── releaseAccessBearersResponseMsg.cpp │ └── releaseAccessBearersResponseMsg.h ├── mme-app ├── Makefile ├── actionHandlers │ ├── attachActionHandlers.cpp │ ├── createBearerProcedureActionHandlers.cpp │ ├── dedBearerActProcedureActionHandlers.cpp │ ├── dedBearerDeactProcedureActionHandlers.cpp │ ├── defaultMmeProcedureActionHandlers.cpp │ ├── deleteBearerProcedureActionHandlers.cpp │ ├── erabModIndicationActionHandlers.cpp │ ├── networkInitDetachActionHandlers.cpp │ ├── s1HandoverActionHandlers.cpp │ ├── s1ReleaseActionHandlers.cpp │ ├── serviceRequestActionHandlers.cpp │ ├── tauActionHandlers.cpp │ ├── ueInitDetachActionHandlers.cpp │ ├── x2HandoverMmActionHandlers.cpp │ └── x2HandoverSmActionHandlers.cpp ├── conf │ ├── mme.json │ └── mme.json.license ├── contextManager │ ├── bearerContextManager.cpp │ ├── dataBlocks.cpp │ ├── mmContextManager.cpp │ ├── mmeAttachProcedureCtxtManager.cpp │ ├── mmeDetachProcedureCtxtManager.cpp │ ├── mmeErabModIndProcedureCtxtManager.cpp │ ├── mmeProcedureCtxtManager.cpp │ ├── mmeS1RelProcedureCtxtManager.cpp │ ├── mmeSmCreateBearerProcCtxtManager.cpp │ ├── mmeSmDeleteBearerProcCtxtManager.cpp │ ├── mmeSvcReqProcedureCtxtManager.cpp │ ├── mmeTauProcedureCtxtManager.cpp │ ├── s1HandoverProcedureContextManager.cpp │ ├── sessionContextManager.cpp │ ├── smDedActProcCtxtManager.cpp │ ├── smDedDeActProcCtxtManager.cpp │ ├── subsDataGroupManager.cpp │ ├── uEContextManager.cpp │ ├── x2HOMmProcedureContextManager.cpp │ └── x2HOSmProcedureContextManager.cpp ├── interfaces │ └── mmeIpcInterface.cpp ├── main.cpp ├── mmeGrpcServer │ └── mmeGrpcServer.cpp ├── mmeSmDefs.cpp ├── mmeStates │ ├── attachStates.cpp │ ├── createBearerProcedureStates.cpp │ ├── dedBearerActProcedureStates.cpp │ ├── dedBearerDeactProcedureStates.cpp │ ├── defaultMmeProcedureStates.cpp │ ├── deleteBearerProcedureStates.cpp │ ├── erabModIndicationStates.cpp │ ├── networkInitDetachStates.cpp │ ├── s1HandoverStates.cpp │ ├── s1ReleaseStates.cpp │ ├── serviceRequestStates.cpp │ ├── stateFactory.cpp │ ├── tauStates.cpp │ ├── ueInitDetachStates.cpp │ ├── x2HandoverMmStates.cpp │ └── x2HandoverSmStates.cpp ├── mmeStatsPromClient.cpp ├── mmeThreads.h ├── mme_config.c ├── mmeappResthandler.cpp ├── monitorSubscriber.cpp ├── msgHandlers │ ├── gtpMsgHandler.cpp │ ├── s1MsgHandler.cpp │ └── s6MsgHandler.cpp ├── parse_config.cpp ├── procedureStats.cpp ├── run.sh ├── sec │ └── secUtils.cpp ├── stop.sh ├── structs.cpp └── utils │ ├── defaultMmeProcedureCtxt.cpp │ ├── mmeCauseUtils.cpp │ ├── mmeCommonUtils.cpp │ ├── mmeContextManagerUtils.cpp │ ├── mmeGtpMsgUtils.cpp │ ├── mmeNasUtils.cpp │ ├── mmeS1MsgUtils.cpp │ ├── mmeStatesUtils.cpp │ └── mmeTimerUtils.cpp ├── mmeGrpcClient ├── Makefile └── mmeGrpcClient.cpp ├── mmeGrpcProtos ├── Makefile └── mmeGrpc.proto ├── s11 ├── Makefile ├── conf │ ├── s11.json │ └── s11.json.license ├── cpp_utils │ ├── Makefile │ ├── gtp_cpp_wrapper.cpp │ ├── gtp_cpp_wrapper.h │ ├── gtp_tables.cpp │ └── gtp_tables.h ├── gtpv2c.c ├── handlers │ ├── create_bearer_resp_handler.c │ ├── create_session_handler.c │ ├── ddn_ack_handler.c │ ├── ddn_failure_ind_handler.c │ ├── delete_bearer_resp_handler.c │ ├── delete_session_handler.c │ ├── modify_bearer_handler.c │ ├── release_bearer_handler.c │ ├── s11_CB_req_handler.c │ ├── s11_CS_resp_handler.c │ ├── s11_DB_req_handler.c │ ├── s11_DDN_handler.c │ ├── s11_DS_resp_handler.c │ ├── s11_ECHO_req_resp_handler.c │ ├── s11_MB_resp_handler.c │ ├── s11_RB_resp_handler.c │ └── s11_msg_delegator.c ├── json_config.c ├── main.c └── options.c ├── s1ap ├── Makefile ├── asn1c │ ├── asn1c │ └── asnGenFiles │ │ ├── ANY.h │ │ ├── Additional-GUTI.h │ │ ├── AdditionalCSFallbackIndicator.h │ │ ├── AerialUEsubscriptionInformation.h │ │ ├── AllocationAndRetentionPriority.h │ │ ├── AreaScopeOfMDT.h │ │ ├── AreaScopeOfQMC.h │ │ ├── AssistanceDataForCECapableUEs.h │ │ ├── AssistanceDataForPaging.h │ │ ├── AssistanceDataForRecommendedCells.h │ │ ├── BIT_STRING.h │ │ ├── BOOLEAN.h │ │ ├── BPLMNs.h │ │ ├── BearerType.h │ │ ├── Bearers-SubjectToStatusTransfer-Item.h │ │ ├── Bearers-SubjectToStatusTransferList.h │ │ ├── BitRate.h │ │ ├── BluetoothMeasConfig.h │ │ ├── BluetoothMeasConfigNameList.h │ │ ├── BluetoothMeasurementConfiguration.h │ │ ├── BluetoothName.h │ │ ├── BroadcastCancelledAreaList.h │ │ ├── BroadcastCompletedAreaList.h │ │ ├── CE-ModeBRestricted.h │ │ ├── CE-mode-B-SupportIndicator.h │ │ ├── CELevel.h │ │ ├── CGI.h │ │ ├── CI.h │ │ ├── CNDomain.h │ │ ├── CNType.h │ │ ├── CNTypeRestrictions-Item.h │ │ ├── CNTypeRestrictions.h │ │ ├── COUNTValueExtended.h │ │ ├── COUNTvalue.h │ │ ├── COUNTvaluePDCP-SNlength18.h │ │ ├── CSFallbackIndicator.h │ │ ├── CSG-Id.h │ │ ├── CSG-IdList-Item.h │ │ ├── CSG-IdList.h │ │ ├── CSGMembershipInfo.h │ │ ├── CSGMembershipStatus.h │ │ ├── CancelledCellinEAI-Item.h │ │ ├── CancelledCellinEAI.h │ │ ├── CancelledCellinTAI-Item.h │ │ ├── CancelledCellinTAI.h │ │ ├── Cause.h │ │ ├── CauseMisc.h │ │ ├── CauseNas.h │ │ ├── CauseProtocol.h │ │ ├── CauseRadioNetwork.h │ │ ├── CauseTransport.h │ │ ├── Cdma2000HORequiredIndication.h │ │ ├── Cdma2000HOStatus.h │ │ ├── Cdma2000OneXMEID.h │ │ ├── Cdma2000OneXMSI.h │ │ ├── Cdma2000OneXPilot.h │ │ ├── Cdma2000OneXRAND.h │ │ ├── Cdma2000OneXSRVCCInfo.h │ │ ├── Cdma2000PDU.h │ │ ├── Cdma2000RATType.h │ │ ├── Cdma2000SectorID.h │ │ ├── Cell-Size.h │ │ ├── CellAccessMode.h │ │ ├── CellBasedMDT.h │ │ ├── CellBasedQMC.h │ │ ├── CellID-Broadcast-Item.h │ │ ├── CellID-Broadcast.h │ │ ├── CellID-Cancelled-Item.h │ │ ├── CellID-Cancelled.h │ │ ├── CellIdListforMDT.h │ │ ├── CellIdListforQMC.h │ │ ├── CellIdentifierAndCELevelForCECapableUEs.h │ │ ├── CellIdentity.h │ │ ├── CellTrafficTrace.h │ │ ├── CellType.h │ │ ├── CompletedCellinEAI-Item.h │ │ ├── CompletedCellinEAI.h │ │ ├── CompletedCellinTAI-Item.h │ │ ├── CompletedCellinTAI.h │ │ ├── ConcurrentWarningMessageIndicator.h │ │ ├── ConnectedengNBItem.h │ │ ├── ConnectedengNBList.h │ │ ├── ConnectionEstablishmentIndication.h │ │ ├── Correlation-ID.h │ │ ├── Coverage-Level.h │ │ ├── Criticality.h │ │ ├── CriticalityDiagnostics-IE-Item.h │ │ ├── CriticalityDiagnostics-IE-List.h │ │ ├── CriticalityDiagnostics.h │ │ ├── DCN-ID.h │ │ ├── DL-CP-SecurityInformation.h │ │ ├── DL-Forwarding.h │ │ ├── DL-NAS-MAC.h │ │ ├── DLNASPDUDeliveryAckRequest.h │ │ ├── Data-Forwarding-Not-Possible.h │ │ ├── DataCodingScheme.h │ │ ├── DeactivateTrace.h │ │ ├── Direct-Forwarding-Path-Availability.h │ │ ├── DownlinkNASTransport.h │ │ ├── DownlinkNonUEAssociatedLPPaTransport.h │ │ ├── DownlinkS1cdma2000tunnelling.h │ │ ├── DownlinkUEAssociatedLPPaTransport.h │ │ ├── E-RAB-ID.h │ │ ├── E-RAB-IE-ContainerList.h │ │ ├── E-RAB-IE-ContainerPairList.h │ │ ├── E-RABAdmittedItem.h │ │ ├── E-RABAdmittedList.h │ │ ├── E-RABDataForwardingItem.h │ │ ├── E-RABFailedToResumeItemResumeReq.h │ │ ├── E-RABFailedToResumeItemResumeRes.h │ │ ├── E-RABFailedToResumeListResumeReq.h │ │ ├── E-RABFailedToResumeListResumeRes.h │ │ ├── E-RABFailedToSetupItemHOReqAck.h │ │ ├── E-RABFailedtoSetupListHOReqAck.h │ │ ├── E-RABInformationList.h │ │ ├── E-RABInformationListItem.h │ │ ├── E-RABItem.h │ │ ├── E-RABLevelQoSParameters.h │ │ ├── E-RABList.h │ │ ├── E-RABModificationConfirm.h │ │ ├── E-RABModificationIndication.h │ │ ├── E-RABModifyItemBearerModConf.h │ │ ├── E-RABModifyItemBearerModRes.h │ │ ├── E-RABModifyListBearerModConf.h │ │ ├── E-RABModifyListBearerModRes.h │ │ ├── E-RABModifyRequest.h │ │ ├── E-RABModifyResponse.h │ │ ├── E-RABNotToBeModifiedItemBearerModInd.h │ │ ├── E-RABNotToBeModifiedListBearerModInd.h │ │ ├── E-RABReleaseCommand.h │ │ ├── E-RABReleaseIndication.h │ │ ├── E-RABReleaseItemBearerRelComp.h │ │ ├── E-RABReleaseListBearerRelComp.h │ │ ├── E-RABReleaseResponse.h │ │ ├── E-RABSetupItemBearerSURes.h │ │ ├── E-RABSetupItemCtxtSURes.h │ │ ├── E-RABSetupListBearerSURes.h │ │ ├── E-RABSetupListCtxtSURes.h │ │ ├── E-RABSetupRequest.h │ │ ├── E-RABSetupResponse.h │ │ ├── E-RABSubjecttoDataForwardingList.h │ │ ├── E-RABToBeModifiedItemBearerModInd.h │ │ ├── E-RABToBeModifiedItemBearerModReq.h │ │ ├── E-RABToBeModifiedListBearerModInd.h │ │ ├── E-RABToBeModifiedListBearerModReq.h │ │ ├── E-RABToBeSetupItemBearerSUReq.h │ │ ├── E-RABToBeSetupItemCtxtSUReq.h │ │ ├── E-RABToBeSetupItemHOReq.h │ │ ├── E-RABToBeSetupListBearerSUReq.h │ │ ├── E-RABToBeSetupListCtxtSUReq.h │ │ ├── E-RABToBeSetupListHOReq.h │ │ ├── E-RABToBeSwitchedDLItem.h │ │ ├── E-RABToBeSwitchedDLList.h │ │ ├── E-RABToBeSwitchedULItem.h │ │ ├── E-RABToBeSwitchedULList.h │ │ ├── E-RABUsageReportItem.h │ │ ├── E-RABUsageReportList.h │ │ ├── E-UTRAN-Trace-ID.h │ │ ├── EARFCN.h │ │ ├── ECGI-List.h │ │ ├── ECGIList.h │ │ ├── ECGIListForRestart.h │ │ ├── EDT-Session.h │ │ ├── EN-DCSONConfigurationTransfer.h │ │ ├── EN-DCSONTransferType.h │ │ ├── EN-DCSONeNBIdentification.h │ │ ├── EN-DCSONengNBIdentification.h │ │ ├── EN-DCTransferTypeReply.h │ │ ├── EN-DCTransferTypeRequest.h │ │ ├── ENB-ID.h │ │ ├── ENB-StatusTransfer-TransparentContainer.h │ │ ├── ENB-UE-S1AP-ID.h │ │ ├── ENBCPRelocationIndication.h │ │ ├── ENBConfigurationTransfer.h │ │ ├── ENBConfigurationUpdate.h │ │ ├── ENBConfigurationUpdateAcknowledge.h │ │ ├── ENBConfigurationUpdateFailure.h │ │ ├── ENBDirectInformationTransfer.h │ │ ├── ENBIndirectX2TransportLayerAddresses.h │ │ ├── ENBStatusTransfer.h │ │ ├── ENBX2ExtTLA.h │ │ ├── ENBX2ExtTLAs.h │ │ ├── ENBX2GTPTLAs.h │ │ ├── ENBX2TLAs.h │ │ ├── ENBname.h │ │ ├── EPLMNs.h │ │ ├── EUTRAN-CGI.h │ │ ├── EUTRANRoundTripDelayEstimationInfo.h │ │ ├── EXTERNAL.h │ │ ├── EmergencyAreaID-Broadcast-Item.h │ │ ├── EmergencyAreaID-Broadcast.h │ │ ├── EmergencyAreaID-Cancelled-Item.h │ │ ├── EmergencyAreaID-Cancelled.h │ │ ├── EmergencyAreaID.h │ │ ├── EmergencyAreaIDList.h │ │ ├── EmergencyAreaIDListForRestart.h │ │ ├── En-gNB-ID.h │ │ ├── EncryptionAlgorithms.h │ │ ├── EndIndication.h │ │ ├── EnhancedCoverageRestricted.h │ │ ├── ErrorIndication.h │ │ ├── EventType.h │ │ ├── ExpectedActivityPeriod.h │ │ ├── ExpectedHOInterval.h │ │ ├── ExpectedIdlePeriod.h │ │ ├── ExpectedUEActivityBehaviour.h │ │ ├── ExpectedUEBehaviour.h │ │ ├── Extended-UEIdentityIndexValue.h │ │ ├── ExtendedBitRate.h │ │ ├── ExtendedRNC-ID.h │ │ ├── ExtendedRepetitionPeriod.h │ │ ├── FiveGSTAC.h │ │ ├── FiveGSTAI.h │ │ ├── ForbiddenInterRATs.h │ │ ├── ForbiddenLACs.h │ │ ├── ForbiddenLAs-Item.h │ │ ├── ForbiddenLAs.h │ │ ├── ForbiddenTACs.h │ │ ├── ForbiddenTAs-Item.h │ │ ├── ForbiddenTAs.h │ │ ├── GBR-QosInformation.h │ │ ├── GERAN-Cell-ID.h │ │ ├── GNB-ID.h │ │ ├── GNB-Identity.h │ │ ├── GNB.h │ │ ├── GTP-TEID.h │ │ ├── GUMMEI.h │ │ ├── GUMMEIList.h │ │ ├── GUMMEIType.h │ │ ├── GWContextReleaseIndication.h │ │ ├── Global-ENB-ID.h │ │ ├── Global-GNB-ID.h │ │ ├── Global-RAN-NODE-ID.h │ │ ├── Global-en-gNB-ID.h │ │ ├── GraphicString.h │ │ ├── HFN.h │ │ ├── HFNModified.h │ │ ├── HFNforPDCP-SNlength18.h │ │ ├── HandoverCancel.h │ │ ├── HandoverCancelAcknowledge.h │ │ ├── HandoverCommand.h │ │ ├── HandoverFailure.h │ │ ├── HandoverFlag.h │ │ ├── HandoverNotify.h │ │ ├── HandoverPreparationFailure.h │ │ ├── HandoverRequest.h │ │ ├── HandoverRequestAcknowledge.h │ │ ├── HandoverRequired.h │ │ ├── HandoverRestrictionList.h │ │ ├── HandoverType.h │ │ ├── IMSI.h │ │ ├── IMSvoiceEPSfallbackfrom5G.h │ │ ├── INTEGER.h │ │ ├── ImmediateMDT.h │ │ ├── InformationOnRecommendedCellsAndENBsForPaging.h │ │ ├── InitialContextSetupFailure.h │ │ ├── InitialContextSetupRequest.h │ │ ├── InitialContextSetupResponse.h │ │ ├── InitialUEMessage.h │ │ ├── InitiatingMessage.h │ │ ├── IntegrityProtectionAlgorithms.h │ │ ├── IntendedNumberOfPagingAttempts.h │ │ ├── Inter-SystemInformationTransferType.h │ │ ├── InterfacesToTrace.h │ │ ├── KillAllWarningMessages.h │ │ ├── KillRequest.h │ │ ├── KillResponse.h │ │ ├── L3-Information.h │ │ ├── LAC.h │ │ ├── LAI.h │ │ ├── LHN-ID.h │ │ ├── LPPa-PDU.h │ │ ├── LTE-M-Indication.h │ │ ├── LastVisitedCell-Item.h │ │ ├── LastVisitedEUTRANCellInformation.h │ │ ├── LastVisitedGERANCellInformation.h │ │ ├── LastVisitedNGRANCellInformation.h │ │ ├── LastVisitedUTRANCellInformation.h │ │ ├── Links-to-log.h │ │ ├── ListeningSubframePattern.h │ │ ├── LocationReport.h │ │ ├── LocationReportingControl.h │ │ ├── LocationReportingFailureIndication.h │ │ ├── LoggedMBSFNMDT.h │ │ ├── LoggedMDT.h │ │ ├── LoggingDuration.h │ │ ├── LoggingInterval.h │ │ ├── M-TMSI.h │ │ ├── M1PeriodicReporting.h │ │ ├── M1ReportingTrigger.h │ │ ├── M1ThresholdEventA2.h │ │ ├── M3Configuration.h │ │ ├── M3period.h │ │ ├── M4Configuration.h │ │ ├── M4period.h │ │ ├── M5Configuration.h │ │ ├── M5period.h │ │ ├── M6Configuration.h │ │ ├── M6delay-threshold.h │ │ ├── M6report-Interval.h │ │ ├── M7Configuration.h │ │ ├── M7period.h │ │ ├── MBSFN-ResultToLog.h │ │ ├── MBSFN-ResultToLogInfo.h │ │ ├── MDT-Activation.h │ │ ├── MDT-Configuration.h │ │ ├── MDT-Location-Info.h │ │ ├── MDTMode-Extension.h │ │ ├── MDTMode.h │ │ ├── MDTPLMNList.h │ │ ├── MME-Code.h │ │ ├── MME-Group-ID.h │ │ ├── MME-UE-S1AP-ID.h │ │ ├── MMECPRelocationIndication.h │ │ ├── MMEConfigurationTransfer.h │ │ ├── MMEConfigurationUpdate.h │ │ ├── MMEConfigurationUpdateAcknowledge.h │ │ ├── MMEConfigurationUpdateFailure.h │ │ ├── MMEDirectInformationTransfer.h │ │ ├── MMEPagingTarget.h │ │ ├── MMERelaySupportIndicator.h │ │ ├── MMEStatusTransfer.h │ │ ├── MMEname.h │ │ ├── MSClassmark2.h │ │ ├── MSClassmark3.h │ │ ├── Makefile.am.asn1convert │ │ ├── Makefile.am.libasncodec │ │ ├── ManagementBasedMDTAllowed.h │ │ ├── Masked-IMEISV.h │ │ ├── MeasurementThresholdA2.h │ │ ├── MeasurementsToActivate.h │ │ ├── MessageIdentifier.h │ │ ├── MobilityInformation.h │ │ ├── MutingAvailabilityIndication.h │ │ ├── MutingPatternInformation.h │ │ ├── NAS-PDU.h │ │ ├── NASDeliveryIndication.h │ │ ├── NASNonDeliveryIndication.h │ │ ├── NASSecurityParametersfromE-UTRAN.h │ │ ├── NASSecurityParameterstoE-UTRAN.h │ │ ├── NB-IoT-DefaultPagingDRX.h │ │ ├── NB-IoT-Paging-eDRX-Cycle.h │ │ ├── NB-IoT-Paging-eDRXInformation.h │ │ ├── NB-IoT-PagingTimeWindow.h │ │ ├── NB-IoT-UEIdentityIndexValue.h │ │ ├── NG-eNB.h │ │ ├── NR-CGI.h │ │ ├── NRCellIdentity.h │ │ ├── NRUESecurityCapabilities.h │ │ ├── NRencryptionAlgorithms.h │ │ ├── NRintegrityProtectionAlgorithms.h │ │ ├── NRrestrictionin5GS.h │ │ ├── NRrestrictioninEPSasSecondaryRAT.h │ │ ├── NULL.h │ │ ├── NativeEnumerated.h │ │ ├── NativeInteger.h │ │ ├── NextPagingAreaScope.h │ │ ├── NumberOfBroadcasts.h │ │ ├── NumberofBroadcastRequest.h │ │ ├── OBJECT_IDENTIFIER.h │ │ ├── OCTET_STRING.h │ │ ├── OPEN_TYPE.h │ │ ├── ObjectDescriptor.h │ │ ├── OldBSS-ToNewBSS-Information.h │ │ ├── OverloadAction.h │ │ ├── OverloadResponse.h │ │ ├── OverloadStart.h │ │ ├── OverloadStop.h │ │ ├── PDCP-SN.h │ │ ├── PDCP-SNExtended.h │ │ ├── PDCP-SNlength18.h │ │ ├── PLMNAreaBasedQMC.h │ │ ├── PLMNListforQMC.h │ │ ├── PLMNidentity.h │ │ ├── PS-ServiceNotAvailable.h │ │ ├── PSCellInformation.h │ │ ├── PWSFailureIndication.h │ │ ├── PWSRestartIndication.h │ │ ├── PWSfailedECGIList.h │ │ ├── Packet-LossRate.h │ │ ├── Paging-eDRX-Cycle.h │ │ ├── Paging-eDRXInformation.h │ │ ├── Paging.h │ │ ├── PagingAttemptCount.h │ │ ├── PagingAttemptInformation.h │ │ ├── PagingDRX.h │ │ ├── PagingPriority.h │ │ ├── PagingTimeWindow.h │ │ ├── PathSwitchRequest.h │ │ ├── PathSwitchRequestAcknowledge.h │ │ ├── PathSwitchRequestFailure.h │ │ ├── PedestrianUE.h │ │ ├── PendingDataIndication.h │ │ ├── Port-Number.h │ │ ├── Pre-emptionCapability.h │ │ ├── Pre-emptionVulnerability.h │ │ ├── Presence.h │ │ ├── PrintableString.h │ │ ├── PriorityLevel.h │ │ ├── PrivacyIndicator.h │ │ ├── PrivateIE-Container.h │ │ ├── PrivateIE-Field.h │ │ ├── PrivateIE-ID.h │ │ ├── PrivateMessage.h │ │ ├── ProSeAuthorized.h │ │ ├── ProSeDirectCommunication.h │ │ ├── ProSeDirectDiscovery.h │ │ ├── ProSeUEtoNetworkRelaying.h │ │ ├── ProcedureCode.h │ │ ├── ProtocolError-IE-ContainerList.h │ │ ├── ProtocolExtensionContainer.h │ │ ├── ProtocolExtensionField.h │ │ ├── ProtocolExtensionID.h │ │ ├── ProtocolIE-Container.h │ │ ├── ProtocolIE-ContainerList.h │ │ ├── ProtocolIE-ContainerPair.h │ │ ├── ProtocolIE-ContainerPairList.h │ │ ├── ProtocolIE-Field.h │ │ ├── ProtocolIE-FieldPair.h │ │ ├── ProtocolIE-ID.h │ │ ├── ProtocolIE-SingleContainer.h │ │ ├── QCI.h │ │ ├── RAC.h │ │ ├── RAT-Type.h │ │ ├── RIMInformation.h │ │ ├── RIMRoutingAddress.h │ │ ├── RIMTransfer.h │ │ ├── RLFReportInformation.h │ │ ├── RNC-ID.h │ │ ├── RRC-Container.h │ │ ├── RRC-Establishment-Cause.h │ │ ├── ReceiveStatusOfULPDCPSDUsExtended.h │ │ ├── ReceiveStatusOfULPDCPSDUsPDCP-SNlength18.h │ │ ├── ReceiveStatusofULPDCPSDUs.h │ │ ├── RecommendedCellItem.h │ │ ├── RecommendedCellList.h │ │ ├── RecommendedCellsForPaging.h │ │ ├── RecommendedENBItem.h │ │ ├── RecommendedENBList.h │ │ ├── RecommendedENBsForPaging.h │ │ ├── RelativeMMECapacity.h │ │ ├── RelayNode-Indicator.h │ │ ├── RepetitionPeriod.h │ │ ├── ReportAmountMDT.h │ │ ├── ReportArea.h │ │ ├── ReportIntervalMDT.h │ │ ├── RequestType.h │ │ ├── RequestTypeAdditionalInfo.h │ │ ├── RerouteNASRequest.h │ │ ├── Reset.h │ │ ├── ResetAcknowledge.h │ │ ├── ResetAll.h │ │ ├── ResetType.h │ │ ├── RetrieveUEInformation.h │ │ ├── Routing-ID.h │ │ ├── S-TMSI.h │ │ ├── S1AP-PDU.h │ │ ├── S1SetupFailure.h │ │ ├── S1SetupRequest.h │ │ ├── S1SetupResponse.h │ │ ├── SONConfigurationTransfer.h │ │ ├── SONInformation-Extension.h │ │ ├── SONInformation.h │ │ ├── SONInformationReply.h │ │ ├── SONInformationReport.h │ │ ├── SONInformationRequest.h │ │ ├── SRVCCHOIndication.h │ │ ├── SRVCCOperationNotPossible.h │ │ ├── SRVCCOperationPossible.h │ │ ├── ScheduledCommunicationTime.h │ │ ├── SecondaryRATDataUsageReport.h │ │ ├── SecondaryRATDataUsageReportItem.h │ │ ├── SecondaryRATDataUsageReportList.h │ │ ├── SecondaryRATDataUsageRequest.h │ │ ├── SecondaryRATType.h │ │ ├── SecurityContext.h │ │ ├── SecurityKey.h │ │ ├── SerialNumber.h │ │ ├── ServedDCNs.h │ │ ├── ServedDCNsItem.h │ │ ├── ServedGUMMEIs.h │ │ ├── ServedGUMMEIsItem.h │ │ ├── ServedGroupIDs.h │ │ ├── ServedMMECs.h │ │ ├── ServedPLMNs.h │ │ ├── ServiceType.h │ │ ├── Source-ToTarget-TransparentContainer.h │ │ ├── SourceBSS-ToTargetBSS-TransparentContainer.h │ │ ├── SourceNgRanNode-ToTargetNgRanNode-TransparentContainer.h │ │ ├── SourceOfUEActivityBehaviourInformation.h │ │ ├── SourceRNC-ToTargetRNC-TransparentContainer.h │ │ ├── SourceeNB-ID.h │ │ ├── SourceeNB-ToTargeteNB-TransparentContainer.h │ │ ├── StratumLevel.h │ │ ├── SubscriberProfileIDforRFP.h │ │ ├── Subscription-Based-UE-DifferentiationInfo.h │ │ ├── SuccessfulOutcome.h │ │ ├── SupportedTAs-Item.h │ │ ├── SupportedTAs.h │ │ ├── SynchronisationInformation.h │ │ ├── SynchronisationStatus.h │ │ ├── TABasedMDT.h │ │ ├── TABasedQMC.h │ │ ├── TAC.h │ │ ├── TAI-Broadcast-Item.h │ │ ├── TAI-Broadcast.h │ │ ├── TAI-Cancelled-Item.h │ │ ├── TAI-Cancelled.h │ │ ├── TAI.h │ │ ├── TAIBasedMDT.h │ │ ├── TAIBasedQMC.h │ │ ├── TAIItem.h │ │ ├── TAIList.h │ │ ├── TAIListForRestart.h │ │ ├── TAIListforMDT.h │ │ ├── TAIListforQMC.h │ │ ├── TAIListforWarning.h │ │ ├── TAListforMDT.h │ │ ├── TAListforQMC.h │ │ ├── TBCD-STRING.h │ │ ├── Target-ToSource-TransparentContainer.h │ │ ├── TargetBSS-ToSourceBSS-TransparentContainer.h │ │ ├── TargetID.h │ │ ├── TargetNgRanNode-ID.h │ │ ├── TargetNgRanNode-ToSourceNgRanNode-TransparentContainer.h │ │ ├── TargetRNC-ID.h │ │ ├── TargetRNC-ToSourceRNC-TransparentContainer.h │ │ ├── TargeteNB-ID.h │ │ ├── TargeteNB-ToSourceeNB-TransparentContainer.h │ │ ├── Threshold-RSRP.h │ │ ├── Threshold-RSRQ.h │ │ ├── Time-UE-StayedInCell-EnhancedGranularity.h │ │ ├── Time-UE-StayedInCell.h │ │ ├── TimeSinceSecondaryNodeRelease.h │ │ ├── TimeSynchronisationInfo.h │ │ ├── TimeToWait.h │ │ ├── TraceActivation.h │ │ ├── TraceDepth.h │ │ ├── TraceFailureIndication.h │ │ ├── TraceStart.h │ │ ├── TrafficLoadReductionIndication.h │ │ ├── TransportInformation.h │ │ ├── TransportLayerAddress.h │ │ ├── TriggeringMessage.h │ │ ├── TunnelInformation.h │ │ ├── TypeOfError.h │ │ ├── UE-Application-Layer-Measurement-Capability.h │ │ ├── UE-HistoryInformation.h │ │ ├── UE-HistoryInformationFromTheUE.h │ │ ├── UE-RLF-Report-Container-for-extended-bands.h │ │ ├── UE-RLF-Report-Container.h │ │ ├── UE-RetentionInformation.h │ │ ├── UE-S1AP-ID-pair.h │ │ ├── UE-S1AP-IDs.h │ │ ├── UE-Usage-Type.h │ │ ├── UE-associatedLogicalS1-ConnectionItem.h │ │ ├── UE-associatedLogicalS1-ConnectionListRes.h │ │ ├── UE-associatedLogicalS1-ConnectionListResAck.h │ │ ├── UEAggregateMaximumBitrate.h │ │ ├── UEAppLayerMeasConfig.h │ │ ├── UECapabilityInfoIndication.h │ │ ├── UECapabilityInfoRequest.h │ │ ├── UEContextModificationConfirm.h │ │ ├── UEContextModificationFailure.h │ │ ├── UEContextModificationIndication.h │ │ ├── UEContextModificationRequest.h │ │ ├── UEContextModificationResponse.h │ │ ├── UEContextReleaseCommand.h │ │ ├── UEContextReleaseComplete.h │ │ ├── UEContextReleaseRequest.h │ │ ├── UEContextResumeFailure.h │ │ ├── UEContextResumeRequest.h │ │ ├── UEContextResumeResponse.h │ │ ├── UEContextSuspendRequest.h │ │ ├── UEContextSuspendResponse.h │ │ ├── UEIdentityIndexValue.h │ │ ├── UEInformationTransfer.h │ │ ├── UEPagingID.h │ │ ├── UERadioCapability.h │ │ ├── UERadioCapabilityForPaging.h │ │ ├── UERadioCapabilityMatchRequest.h │ │ ├── UERadioCapabilityMatchResponse.h │ │ ├── UESecurityCapabilities.h │ │ ├── UESidelinkAggregateMaximumBitrate.h │ │ ├── UEUserPlaneCIoTSupportIndicator.h │ │ ├── UL-CP-SecurityInformation.h │ │ ├── UL-NAS-Count.h │ │ ├── UL-NAS-MAC.h │ │ ├── UnlicensedSpectrumRestriction.h │ │ ├── UnsuccessfulOutcome.h │ │ ├── UplinkNASTransport.h │ │ ├── UplinkNonUEAssociatedLPPaTransport.h │ │ ├── UplinkS1cdma2000tunnelling.h │ │ ├── UplinkUEAssociatedLPPaTransport.h │ │ ├── UserLocationInformation.h │ │ ├── V2XServicesAuthorized.h │ │ ├── VehicleUE.h │ │ ├── VoiceSupportMatchIndicator.h │ │ ├── WLANMeasConfig.h │ │ ├── WLANMeasConfigNameList.h │ │ ├── WLANMeasurementConfiguration.h │ │ ├── WLANName.h │ │ ├── WarningAreaCoordinates.h │ │ ├── WarningAreaList.h │ │ ├── WarningMessageContents.h │ │ ├── WarningSecurityInfo.h │ │ ├── WarningType.h │ │ ├── WriteReplaceWarningRequest.h │ │ ├── WriteReplaceWarningResponse.h │ │ ├── X2TNLConfigurationInfo.h │ │ ├── asn1c │ │ ├── S1AP-CommonDataTypes.asn │ │ ├── S1AP-Constants.asn │ │ ├── S1AP-Containers.asn │ │ ├── S1AP-IEs.asn │ │ ├── S1AP-PDU-Contents.asn │ │ └── S1AP-PDU-Descriptions.asn │ │ ├── asn1tostruct.py │ │ ├── asn_SEQUENCE_OF.h │ │ ├── asn_SET_OF.h │ │ ├── asn_application.h │ │ ├── asn_bit_data.h │ │ ├── asn_codecs.h │ │ ├── asn_codecs_prim.h │ │ ├── asn_constant.h │ │ ├── asn_internal.h │ │ ├── asn_ioc.h │ │ ├── asn_random_fill.h │ │ ├── asn_system.h │ │ ├── ber_decoder.h │ │ ├── ber_tlv_length.h │ │ ├── ber_tlv_tag.h │ │ ├── constr_CHOICE.h │ │ ├── constr_SEQUENCE.h │ │ ├── constr_SEQUENCE_OF.h │ │ ├── constr_SET_OF.h │ │ ├── constr_TYPE.h │ │ ├── constraints.h │ │ ├── converter-example.mk │ │ ├── der_encoder.h │ │ ├── libasncodec.a │ │ ├── oer_decoder.h │ │ ├── oer_encoder.h │ │ ├── oer_support.h │ │ ├── per_decoder.h │ │ ├── per_encoder.h │ │ ├── per_opentype.h │ │ ├── per_support.h │ │ ├── s1ap-converter │ │ ├── xer_decoder.h │ │ ├── xer_encoder.h │ │ └── xer_support.h ├── conf │ ├── s1ap.json │ ├── s1ap.json.bkup │ └── s1ap.json.license ├── handlers │ ├── attach_authreq.c │ ├── attach_esmreq.c │ ├── attach_icsreq.c │ ├── attach_id_req.c │ ├── attach_initctxresp.c │ ├── attach_secreq.c │ ├── common_reject.c │ ├── ctxrelease_cmp.c │ ├── ctxrelease_req.c │ ├── ctxrelease_resp.c │ ├── detach_accept.c │ ├── enb_status_transfer.c │ ├── erab_mod_confirmation.c │ ├── erab_mod_ind.c │ ├── erab_release_command.c │ ├── erab_release_response.c │ ├── erab_setup_request.c │ ├── erab_setup_response.c │ ├── gen_error_reset.c │ ├── handle_emmreq.c │ ├── handover_ack.c │ ├── handover_cancel.c │ ├── handover_cancel_ack.c │ ├── handover_command.c │ ├── handover_failure.c │ ├── handover_notify.c │ ├── handover_preparation_failure.c │ ├── handover_request.c │ ├── handover_required.c │ ├── ics_req_paging.c │ ├── ie_parsers.c │ ├── mme_msg_delegator.c │ ├── mme_status_transfer.c │ ├── ni_detach_request.c │ ├── paging.c │ ├── path_switch_req.c │ ├── path_switch_req_ack.c │ ├── path_switch_req_failure.c │ ├── s1ap_encoder.c │ ├── s1ap_msg_delegator.c │ ├── s1ap_tau_response_handler.c │ ├── s1setup.c │ └── uectxtrelease_cmd.c ├── json_config.c ├── main.c ├── options.c ├── s1apContextManager │ ├── Makefile │ ├── enbContextManager.cpp │ ├── s1apContextWrapper.cpp │ ├── s1apContextWrapper_c.cpp │ ├── s1apDataBlocks.cpp │ ├── s1apDataGroupManager.cpp │ └── s1apResthandler.cpp ├── s1ap_config.c └── sctp_conn.c ├── s6a ├── Makefile ├── conf │ ├── 01.pem │ ├── cacert.pem │ ├── cakey.pem │ ├── demoCA │ │ ├── index.txt │ │ ├── index.txt.attr │ │ ├── index.txt.old │ │ ├── serial │ │ └── serial.old │ ├── make_certs.sh │ ├── mme.cert.pem │ ├── mme.csr.pem │ ├── mme.key.pem │ ├── s6a.json │ ├── s6a.json.license │ ├── s6a_fd.conf │ └── s6a_fd.conf.license ├── fd_init.c ├── handlers │ ├── aia_handler.c │ ├── clr_handler.c │ ├── detach_session_handler.c │ ├── hss_message_delegator.c │ ├── purge_handler.c │ ├── s6a_decoder.c │ ├── s6a_req_handler.c │ └── ula_handler.c ├── json_config.c └── main.c └── stateMachineFwk ├── Makefile ├── actionTable.cpp ├── controlBlock.cpp ├── event.cpp ├── permDataBlock.cpp ├── procedureQueue.cpp ├── state.cpp ├── stateMachineEngine.cpp └── tempDataBlock.cpp /.ci/config/mme.json.license: -------------------------------------------------------------------------------- 1 | Copyright 2019-present Open Networking Foundation 2 | SPDX-License-Identifier: Apache-2.0 3 | -------------------------------------------------------------------------------- /.ci/config/s11.json: -------------------------------------------------------------------------------- 1 | { 2 | "mme": { 3 | "ip_addr": "10.0.10.30", 4 | "name": "vmmestandalone", 5 | "group_id": 1, 6 | "code": 1, 7 | "__comment__": "Here is comment", 8 | "mcc": { 9 | "dig1": 2, 10 | "dig2": 0, 11 | "dig3": 8 12 | }, 13 | "mnc": { 14 | "dig1": 0, 15 | "dig2": 1, 16 | "dig3": -1 17 | } 18 | }, 19 | "s1ap": { 20 | "s1ap_local_addr": "10.2.10.20", 21 | "sctp_port": 36412, 22 | "enb_addr": "10.1.10.1", 23 | "enb_port": 32767, 24 | "egtp_default_hostname": "sutlej.ccin.ccpu.com" 25 | }, 26 | "s11": { 27 | "egtp_local_addr": "10.0.2.20", 28 | "egtp_default_port": 2123, 29 | "sgw_addr": "10.0.2.70", 30 | "pgw_addr": "192.168.1.105" 31 | }, 32 | "s6a": { 33 | "host_type": "freediameter", 34 | "host": "hss.openair4G.eur", 35 | "realm": "openair4G.eur" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /.ci/config/s11.json.license: -------------------------------------------------------------------------------- 1 | Copyright 2019-present Open Networking Foundation 2 | SPDX-License-Identifier: Apache-2.0 3 | -------------------------------------------------------------------------------- /.ci/config/s1ap.json: -------------------------------------------------------------------------------- 1 | { 2 | "mme": { 3 | "ip_addr": "10.0.10.30", 4 | "name": "vmmestandalone", 5 | "group_id": 1, 6 | "code": 1, 7 | "__comment__": "Here is comment", 8 | "mcc": { 9 | "dig1": 2, 10 | "dig2": 0, 11 | "dig3": 8 12 | }, 13 | "mnc": { 14 | "dig1": 0, 15 | "dig2": 1, 16 | "dig3": -1 17 | }, 18 | "plmnlist": { 19 | "plmn1": "mcc=315,mnc=010", 20 | "plmn2": "mcc=208,mnc=01" 21 | } 22 | }, 23 | "s1ap": { 24 | "s1ap_local_addr": "10.0.10.30", 25 | "sctp_port": 36412, 26 | "enb_addr": "10.0.10.1", 27 | "enb_port": 32767, 28 | "egtp_default_hostname": "sutlej.ccin.ccpu.com" 29 | }, 30 | "s11": { 31 | "egtp_local_addr": "10.0.2.20", 32 | "egtp_default_port": 2123, 33 | "sgw_addr": "10.0.2.70", 34 | "pgw_addr": "192.168.1.105" 35 | }, 36 | "s6a": { 37 | "host_type": "freediameter", 38 | "host": "hss.openair4G.eur", 39 | "realm": "openair4G.eur" 40 | }} 41 | -------------------------------------------------------------------------------- /.ci/config/s1ap.json.license: -------------------------------------------------------------------------------- 1 | Copyright 2019-present Open Networking Foundation 2 | SPDX-License-Identifier: Apache-2.0 3 | -------------------------------------------------------------------------------- /.ci/config/s6a.json: -------------------------------------------------------------------------------- 1 | { 2 | "mme": { 3 | "ip_addr": "10.0.10.30", 4 | "name": "vmmestandalone", 5 | "group_id": 1, 6 | "code": 1, 7 | "__comment__": "Here is comment", 8 | "mcc": { 9 | "dig1": 2, 10 | "dig2": 0, 11 | "dig3": 8 12 | }, 13 | "mnc": { 14 | "dig1": 0, 15 | "dig2": 1, 16 | "dig3": -1 17 | } 18 | }, 19 | "s1ap": { 20 | "s1ap_local_addr": "10.2.10.20", 21 | "sctp_port": 36412, 22 | "enb_addr": "10.1.10.1", 23 | "enb_port": 32767, 24 | "egtp_default_hostname": "sutlej.ccin.ccpu.com" 25 | }, 26 | "s11": { 27 | "egtp_local_addr": "10.1.10.22", 28 | "egtp_default_port": 2123, 29 | "sgw_addr": "10.1.10.20", 30 | "pgw_addr": "192.168.1.105" 31 | }, 32 | "s6a": { 33 | "hss_type": "freediameter", 34 | "host_name": "hss.openair4G.eur", 35 | "realm": "openair4G.eur" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /.ci/config/s6a.json.license: -------------------------------------------------------------------------------- 1 | Copyright 2019-present Open Networking Foundation 2 | SPDX-License-Identifier: Apache-2.0 3 | -------------------------------------------------------------------------------- /.ci/config/s6a_fd.conf.license: -------------------------------------------------------------------------------- 1 | Copyright 2019-present Open Networking Foundation 2 | SPDX-License-Identifier: Apache-2.0 3 | -------------------------------------------------------------------------------- /.fossa.yml: -------------------------------------------------------------------------------- 1 | # Copyright 2020-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | # Generated by FOSSA CLI (https://github.com/fossas/fossa-cli) 6 | # Visit https://fossa.com to learn more 7 | # 8 | # Usage: FOSSA_API_KEY=<> fossa analyze 9 | # -T is not supported at this moment from fossa side. 10 | version: 2 11 | cli: 12 | server: https://app.fossa.com 13 | fetcher: custom 14 | project: Nucleus 15 | analyze: 16 | modules: 17 | - name: Nucleus 18 | type: raw 19 | target: ../Nucleus 20 | path: ../Nucleus 21 | -------------------------------------------------------------------------------- /Documentation/Documentation.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/Documentation.md -------------------------------------------------------------------------------- /Documentation/images/action_handler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/action_handler.png -------------------------------------------------------------------------------- /Documentation/images/action_handler_cpp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/action_handler_cpp.png -------------------------------------------------------------------------------- /Documentation/images/application_building_blocks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/application_building_blocks.png -------------------------------------------------------------------------------- /Documentation/images/block_pool_manager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/block_pool_manager.png -------------------------------------------------------------------------------- /Documentation/images/code_gen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/code_gen.png -------------------------------------------------------------------------------- /Documentation/images/ctxt_manager_code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/ctxt_manager_code.png -------------------------------------------------------------------------------- /Documentation/images/data_block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/data_block.png -------------------------------------------------------------------------------- /Documentation/images/data_blocks_cpp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/data_blocks_cpp.png -------------------------------------------------------------------------------- /Documentation/images/data_blocks_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/data_blocks_h.png -------------------------------------------------------------------------------- /Documentation/images/data_blocks_h_var.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/data_blocks_h_var.png -------------------------------------------------------------------------------- /Documentation/images/data_group_manager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/data_group_manager.png -------------------------------------------------------------------------------- /Documentation/images/data_structure_arrangement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/data_structure_arrangement.png -------------------------------------------------------------------------------- /Documentation/images/enum_types.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/enum_types.png -------------------------------------------------------------------------------- /Documentation/images/generation_item.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/generation_item.png -------------------------------------------------------------------------------- /Documentation/images/json_data_model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/json_data_model.png -------------------------------------------------------------------------------- /Documentation/images/manager_cpp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/manager_cpp.png -------------------------------------------------------------------------------- /Documentation/images/manager_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/manager_h.png -------------------------------------------------------------------------------- /Documentation/images/memory_pool_manager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/memory_pool_manager.png -------------------------------------------------------------------------------- /Documentation/images/mmeSmDefs_cpp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/mmeSmDefs_cpp.png -------------------------------------------------------------------------------- /Documentation/images/mmeSmDefs_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/mmeSmDefs_h.png -------------------------------------------------------------------------------- /Documentation/images/socket_bind.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/socket_bind.png -------------------------------------------------------------------------------- /Documentation/images/socket_create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/socket_create.png -------------------------------------------------------------------------------- /Documentation/images/state_guard_timer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/state_guard_timer.png -------------------------------------------------------------------------------- /Documentation/images/state_guard_timer_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/state_guard_timer_disabled.png -------------------------------------------------------------------------------- /Documentation/images/state_machine_design.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/state_machine_design.png -------------------------------------------------------------------------------- /Documentation/images/state_machine_framework.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/state_machine_framework.jpg -------------------------------------------------------------------------------- /Documentation/images/state_machine_framework.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/state_machine_framework.png -------------------------------------------------------------------------------- /Documentation/images/state_machine_runtime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/state_machine_runtime.png -------------------------------------------------------------------------------- /Documentation/images/state_mc_code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/state_mc_code.png -------------------------------------------------------------------------------- /Documentation/images/state_name_cpp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/state_name_cpp.png -------------------------------------------------------------------------------- /Documentation/images/state_name_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/state_name_h.png -------------------------------------------------------------------------------- /Documentation/images/subs_data_group_manager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/subs_data_group_manager.png -------------------------------------------------------------------------------- /Documentation/images/subs_data_group_mgr_cpp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/subs_data_group_mgr_cpp.png -------------------------------------------------------------------------------- /Documentation/images/subs_data_group_mgr_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/subs_data_group_mgr_h.png -------------------------------------------------------------------------------- /Documentation/images/subs_data_group_mgr_h_var.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/subs_data_group_mgr_h_var.png -------------------------------------------------------------------------------- /Documentation/images/thrading_model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/Documentation/images/thrading_model.png -------------------------------------------------------------------------------- /VERSION: -------------------------------------------------------------------------------- 1 | 2.1.0-dev 2 | -------------------------------------------------------------------------------- /include/cmn/basicTypes.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020-present Open Networking Foundation 3 | * Copyright (c) 2019, Infosys Ltd. 4 | * 5 | * SPDX-License-Identifier: Apache-2.0 6 | */ 7 | #include 8 | 9 | typedef uint8_t Uint8; 10 | typedef uint16_t Uint16; 11 | typedef uint32_t Uint32; 12 | typedef uint64_t Uint64; 13 | 14 | -------------------------------------------------------------------------------- /include/cmn/cTime.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020-present Infosys Limited   3 | *    4 | * SPDX-License-Identifier: Apache-2.0     5 | */ 6 | 7 | #ifndef TIMERS_CTIME_H_ 8 | #define TIMERS_CTIME_H_ 9 | 10 | #include 11 | #include 12 | #include 13 | 14 | class CTime 15 | { 16 | public: 17 | CTime(); 18 | CTime(const struct timeval &time); 19 | CTime(uint64_t ms); 20 | CTime(const CTime& cTime); 21 | 22 | ~CTime(); 23 | 24 | void setTime(struct timeval& val); 25 | const struct timeval& getTime() const; 26 | 27 | void addDuration(const struct timeval& val); 28 | 29 | bool operator<(const CTime& rhs) const; 30 | bool operator>(const CTime& rhs) const; 31 | bool operator==(const CTime& rhs) const; 32 | bool operator<=(const CTime& rhs) const; 33 | CTime operator+(const CTime& rhs); 34 | CTime& operator=(const CTime& rhs); 35 | 36 | private: 37 | struct timeval time_m; 38 | }; 39 | 40 | #endif /* TIMERS_CTIME_H_ */ 41 | -------------------------------------------------------------------------------- /include/cmn/componentDb.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020-present Infosys Limited 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | #ifndef COMPONENTDB_H_ 8 | #define COMPONENTDB_H_ 9 | 10 | #include 11 | #include 12 | 13 | namespace cmn 14 | { 15 | class ComponentIf{ 16 | public: 17 | virtual ~ComponentIf() {}; 18 | }; 19 | 20 | class ComponentDb{ 21 | public: 22 | void registerComponent(uint16_t componentId, ComponentIf* comp); 23 | ComponentIf& getComponent(uint16_t componentId); 24 | 25 | private: 26 | std::map componentContainer; 27 | }; 28 | 29 | extern ComponentDb compDb; 30 | 31 | #define FIND_COMPONENT(Component, ComponentId) \ 32 | static_cast(compDb.getComponent(ComponentId)) 33 | 34 | } 35 | 36 | #endif /* COMPONENTDB_H_ */ 37 | 38 | 39 | -------------------------------------------------------------------------------- /include/cmn/dataGroupManager.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | #ifndef DATA_GROUP_MANAGER_H 8 | #define DATA_GROUP_MANAGER_H 9 | 10 | #include 11 | #include "controlBlock.h" 12 | #include 13 | 14 | using namespace SM; 15 | 16 | namespace cmn { 17 | namespace DGM 18 | { 19 | class DataGroupManager 20 | { 21 | public: 22 | 23 | DataGroupManager(); 24 | virtual ~DataGroupManager(); 25 | 26 | void initializeCBStore( int DataCount ); 27 | virtual ControlBlock* allocateCB(); 28 | virtual void deAllocateCB( uint32_t cbIndex ); 29 | SM::ControlBlock* findControlBlock( uint32_t index ); 30 | 31 | protected: 32 | ControlBlock* cbstore_m; // Indexed Store 33 | 34 | private: 35 | std::deque freeQ_m; // free Q 36 | std::mutex mutex_m; 37 | 38 | }; 39 | }; 40 | }; 41 | #endif 42 | -------------------------------------------------------------------------------- /include/cmn/ipcChannel.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Infosys Limited 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | #ifndef INCLUDE_CMN_IPCCHANNEL_H_ 8 | #define INCLUDE_CMN_IPCCHANNEL_H_ 9 | 10 | #include "ipcTypes.h" 11 | 12 | namespace cmn { 13 | namespace ipc { 14 | 15 | class IpcChannel { 16 | public: 17 | IpcChannel(IpcChannelType ipcType); 18 | virtual ~IpcChannel(); 19 | 20 | IpcChannelType getIpcChannelType() const; 21 | void setIpcChannelType(const IpcChannelType ipcType); 22 | 23 | IpcChannelHdl getIpcChannelHdl() const; 24 | void setIpcChannelHdl(const IpcChannelHdl ipcHdl, const IpcChannelType ipcType); 25 | 26 | virtual void sendMsgTo(void * buffer, uint32_t len, IpcAddress destAddress) = 0; 27 | virtual uint32_t recvMsgFrom(void * buffer, uint32_t bufLen, IpcAddress& srcAddress) = 0; 28 | 29 | protected: 30 | IpcChannelType ipcType_m; 31 | IpcChannelHdl ipcHdl_m; 32 | }; 33 | 34 | } /* namespace ipc */ 35 | } /* namespace cmn */ 36 | 37 | #endif /* INCLUDE_CMN_IPCCHANNEL_H_ */ 38 | -------------------------------------------------------------------------------- /include/cmn/ipcTypes.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Infosys Limited 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | #ifndef INCLUDE_CMN_IPCTYPES_H_ 8 | #define INCLUDE_CMN_IPCTYPES_H_ 9 | 10 | #include 11 | 12 | namespace cmn { 13 | namespace ipc { 14 | 15 | enum class IpcChannelType 16 | { 17 | tipc_c, 18 | maxIpcType_c 19 | }; 20 | 21 | union IpcChannelHdl 22 | { 23 | uint32_t u32; 24 | }; 25 | 26 | union IpcAddress 27 | { 28 | uint32_t u32; 29 | }; 30 | 31 | typedef struct IpcMsgHeader 32 | { 33 | IpcAddress destAddr; 34 | IpcAddress srcAddr; 35 | 36 | } IpcMsgHeader; 37 | 38 | } /* namespace ipc */ 39 | } /* namespace cmn */ 40 | 41 | 42 | 43 | 44 | #endif /* INCLUDE_CMN_IPCTYPES_H_ */ 45 | -------------------------------------------------------------------------------- /include/cmn/tipcSocket.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Infosys Limited 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | #ifndef INCLUDE_CMN_TIPCSOCKET_H_ 8 | #define INCLUDE_CMN_TIPCSOCKET_H_ 9 | 10 | #include "ipcChannel.h" 11 | 12 | namespace cmn { 13 | namespace ipc { 14 | 15 | class TipcSocket: public IpcChannel { 16 | public: 17 | TipcSocket(); 18 | virtual ~TipcSocket(); 19 | 20 | bool bindTipcSocket(IpcAddress myAddress); 21 | 22 | virtual void sendMsgTo(void * buffer, uint32_t len, IpcAddress destAddr); 23 | virtual uint32_t recvMsgFrom(void * buffer, uint32_t len, IpcAddress& srcAddr); 24 | 25 | private: 26 | void initialize(); 27 | 28 | }; 29 | 30 | } /* namespace ipc */ 31 | } /* namespace cmn */ 32 | 33 | #endif /* INCLUDE_CMN_TIPCSOCKET_H_ */ 34 | -------------------------------------------------------------------------------- /include/cmn/tipcTypes.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Infosys Limited 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | #ifndef INCLUDE_COMMONFWK_TIPCTYPES_H_ 8 | #define INCLUDE_COMMONFWK_TIPCTYPES_H_ 9 | 10 | #include 11 | 12 | static const uint32_t tipcServiceAddressType_c = 18888; 13 | static const uint32_t tipcDomain_c = 0x0; 14 | 15 | typedef enum TipcServiceInstance 16 | { 17 | mmeAppInstanceNum_c = 1, 18 | s1apAppInstanceNum_c, 19 | s6AppInstanceNum_c, 20 | s11AppInstanceNum_c, 21 | 22 | maxInstanceNum_c 23 | 24 | } TipcInstanceTypes; 25 | 26 | #endif /* INCLUDE_COMMONFWK_TIPCTYPES_H_ */ 27 | -------------------------------------------------------------------------------- /include/common/3gpp_24008.h: -------------------------------------------------------------------------------- 1 | #ifndef __3gpp_24008_h__ 2 | #define __3gpp_24008_h__ 3 | 4 | /* UE Types */ 5 | 6 | #define ID_IMSI 1 7 | #define ID_IMEI 2 8 | #define ID_IMEISV 3 9 | #define ID_TMSI 4 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /include/common/defines.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | #ifndef __DEFINES__ 8 | #define MAX_PLMN 10 9 | #endif 10 | -------------------------------------------------------------------------------- /include/common/json_data.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd. 4 | * Copyright (c) 2017 Intel Corporation 5 | * 6 | * SPDX-License-Identifier: Apache-2.0 7 | */ 8 | #ifndef __JSON_DATA_H_ 9 | #define __JSON_DATA_H_ 10 | 11 | #include 12 | #include 13 | #include 14 | 15 | char * 16 | get_string_scalar(char *path); 17 | 18 | int 19 | get_ip_scalar(char *path); 20 | 21 | int 22 | get_int_scalar(char *path); 23 | 24 | int 25 | load_json(char *filename); 26 | 27 | void close_json(void); 28 | #endif /**/ 29 | -------------------------------------------------------------------------------- /include/common/monitor_config.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | * 6 | * 7 | */ 8 | 9 | #ifndef __MONITOR_CONFIG__ 10 | #define __MONITOR_CONFIG__ 11 | 12 | #include 13 | #include 14 | 15 | typedef void (*configCbk) (char *, uint32_t flags); 16 | void watch_config_change(char *config_file, configCbk cbk, bool always); 17 | #endif 18 | -------------------------------------------------------------------------------- /include/common/s1_common_types.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020-present Open Networking Foundation 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | #ifndef WRAPPERSTRUCTURES_H 8 | #define WRAPPERSTRUCTURES_H 9 | /************************************** 10 | * 11 | ***************************************/ 12 | #include "s1ap_structs.h" 13 | 14 | #define INVALID_ENTRY 0xFFFFFFFF 15 | #define INVALID_CB_INDEX 0xFFFFFFFF 16 | struct EnbStruct 17 | { 18 | int enbFd_m; 19 | int enbId_m; 20 | int s1apEnbUeId_m; 21 | struct TAI tai_m; 22 | char eNbName[128]; 23 | uint16_t restart_counter; // increment everytime, we find old context & eNB is reconnecting 24 | }; 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /include/common/s1ap_error.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd. 4 | * Copyright (c) 2017 Intel Corporation 5 | * 6 | * SPDX-License-Identifier: Apache-2.0 7 | */ 8 | #ifndef __S1AP_ERROR_H_ 9 | #define __S1AP_ERROR_H_ 10 | 11 | /** 12 | When MME wants to reject to s1ap message due to unknown UE context 13 | Refer - 36.413 . 9.1.8.1 14 | */ 15 | 16 | 17 | struct ue_reset_info { 18 | uint32_t enb_fd; 19 | uint16_t failure_layer; 20 | uint16_t cause; 21 | uint32_t reset_type; 22 | uint32_t enb_s1ap_ue_id; 23 | uint32_t mme_s1ap_ue_id; 24 | }; 25 | 26 | #define UE_RESET_INFO_BUF_SIZE sizeof(struct ue_reset_info) 27 | 28 | #endif /*__S1AP_ERROR_H_*/ 29 | -------------------------------------------------------------------------------- /include/common/s6_common_types.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020-present Infosys Limited 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | #ifndef INCLUDE_COMMON_S6_COMMON_TYPES_H_ 8 | #define INCLUDE_COMMON_S6_COMMON_TYPES_H_ 9 | 10 | 11 | // S6a Access Restriction Data Bit Masks (1 << 8) 12 | static const uint32_t nrAsSecRatInEutranNotAllowedBitMask_c = 0x00000080; 13 | 14 | // Feature List ID 2 BitMasks (1 << 27) 15 | static const uint32_t nrAsSecRatBitMask_c = 0x08000000; 16 | 17 | typedef struct supported_features { 18 | uint8_t feature_list_id; 19 | uint32_t feature_list; 20 | }supported_features; 21 | 22 | typedef struct supported_features_list { 23 | uint8_t count; 24 | supported_features supp_features[2]; 25 | } supported_features_list; 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /include/common/thread_pool.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd. 4 | * Copyright (c) 2017 Intel Corporation 5 | * 6 | * SPDX-License-Identifier: Apache-2.0 7 | */ 8 | 9 | #ifndef __THREAD_POOL_H 10 | #define __THREAD_POOL_H 11 | 12 | #ifdef __cplusplus 13 | extern "C"{ 14 | #endif 15 | 16 | struct thread_pool; 17 | typedef void (* JobFunction) (void *); 18 | 19 | /* 20 | * Creates new thread pool 21 | * on success return pointer to thread_pool 22 | * on failure return NULL 23 | */ 24 | extern struct thread_pool *thread_pool_new(int count); 25 | 26 | /* 27 | * Stops all threads and 28 | * destroy the thread pool 29 | * on success return 0 30 | * on failure return -1 31 | */ 32 | extern int thread_pool_destroy(struct thread_pool *pool); 33 | 34 | /* 35 | * Queues the job to thread pool 36 | * idle threads will pick the job 37 | * on success it return 0 38 | * on failure returns -ve values 39 | */ 40 | extern int insert_job(struct thread_pool *pool, JobFunction function, 41 | void *userdata); 42 | 43 | #ifdef __cplusplus 44 | } 45 | #endif 46 | 47 | #endif 48 | 49 | -------------------------------------------------------------------------------- /include/common/unix_conn.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | * 6 | * 7 | */ 8 | 9 | #ifndef __UNIX_CONN_H_ 10 | #define __UNIX_CONN_H_ 11 | 12 | #include 13 | #include 14 | #include 15 | #include 16 | 17 | #define MAX_PENDING_CONN 5 18 | #define BUF_SIZE 1024 19 | 20 | int create_unix_socket(); 21 | 22 | int accept_unix_socket(int sockfd); 23 | 24 | int recv_unix_msg(int sockfd, unsigned char *buf, size_t len); 25 | 26 | int send_unix_msg(int sockfd, unsigned char *buf, size_t len); 27 | 28 | int close_unix_socket(int sockfd); 29 | 30 | #endif /*__UNIX_CONN_H*/ 31 | -------------------------------------------------------------------------------- /include/common/unix_sock.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | * 6 | * 7 | */ 8 | 9 | #ifndef UNIXSOCK_H_ 10 | #define UNIXSOCK_H_ 11 | 12 | #define BUFFER_LEN 1024 13 | #define MAX_CLIENT 10 14 | 15 | void* accept_unix(void *data); 16 | int init_sock(); 17 | 18 | // Dummy function callback used by unix socket 19 | void dummy_monitor_fn(void* message); 20 | #endif 21 | -------------------------------------------------------------------------------- /include/mme-app/hash.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd. 4 | * Copyright (c) 2017 Intel Corporation 5 | * 6 | * SPDX-License-Identifier: Apache-2.0 7 | */ 8 | 9 | 10 | #ifndef __IMSI_LOOKUP_H_ 11 | #define __IMSI_LOOKUP_H_ 12 | 13 | int 14 | init_hash(); 15 | 16 | #endif /*__IMSI_LOOKUP_H_*/ 17 | -------------------------------------------------------------------------------- /include/mme-app/interfaces/mmeIpcInterface.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Infosys Limited   3 | *    4 | * SPDX-License-Identifier: Apache-2.0     5 | */ 6 | 7 | #ifndef INCLUDE_MME_APP_INTERFACES_MMEIPCINTERFACE_H_ 8 | #define INCLUDE_MME_APP_INTERFACES_MMEIPCINTERFACE_H_ 9 | 10 | #include 11 | #include 12 | #include 13 | 14 | namespace cmn{ 15 | namespace utils{ 16 | class MsgBuffer; 17 | } 18 | } 19 | 20 | class MmeIpcInterface:public cmn::ComponentIf { 21 | 22 | public: 23 | MmeIpcInterface(); 24 | virtual ~MmeIpcInterface(); 25 | 26 | bool setup(); 27 | void teardown(); 28 | 29 | cmn::ipc::IpcChannel* sender(); 30 | cmn::ipc::IpcChannel* reader(); 31 | 32 | void handleIpcMsg(cmn::IpcEMsgUnqPtr buf); 33 | 34 | bool dispatchIpcMsg(char* buf, uint32_t len, cmn::ipc::IpcAddress& destAddr); 35 | 36 | private: 37 | cmn::ipc::IpcChannel* sender_mp; 38 | cmn::ipc::IpcChannel* reader_mp; 39 | }; 40 | 41 | #endif /* INCLUDE_MME_APP_INTERFACES_MMEIPCINTERFACE_H_ */ 42 | -------------------------------------------------------------------------------- /include/mme-app/mmeappResthandler.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | 8 | 9 | #ifndef _MME_RESTHANDLER_H_ 10 | #define _MME_RESTHANDLER_H_ 11 | 12 | #include 13 | #include 14 | #include 15 | 16 | class RestHandler : public Pistache::Http::Handler { 17 | 18 | public: 19 | HTTP_PROTOTYPE(RestHandler) 20 | void onRequest(const Pistache::Http::Request& request, Pistache::Http::ResponseWriter response); 21 | }; 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /include/mme-app/monitorSubscriber.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * Copyright 2020-present Infosys Limited 4 | * 5 | * SPDX-License-Identifier: Apache-2.0 6 | */ 7 | 8 | 9 | class MonitorSubscriber 10 | { 11 | public: 12 | static void handle_monitor_processing(void *message); 13 | 14 | private: 15 | MonitorSubscriber(); 16 | ~MonitorSubscriber(); 17 | 18 | static void handle_monitor_imsi_req(struct monitor_imsi_req *mir, int sock_fd); 19 | static void handle_imsi_list_req(struct monitor_imsi_req *mir, int sock_fd); 20 | static void handle_imsi_flush_req(); 21 | }; 22 | 23 | 24 | -------------------------------------------------------------------------------- /include/mme-app/msgHandlers/gtpMsgHandler.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Infosys Limited   3 | *    4 | * SPDX-License-Identifier: Apache-2.0     5 | */ 6 | 7 | #ifndef INCLUDE_MME_APP_MSGHANDLERS_GTPMSGHANDLER_H_ 8 | #define INCLUDE_MME_APP_MSGHANDLERS_GTPMSGHANDLER_H_ 9 | 10 | #include 11 | #include 12 | 13 | class GtpMsgHandler { 14 | public: 15 | static GtpMsgHandler* Instance(); 16 | ~GtpMsgHandler(); 17 | 18 | void handleGtpMessage_v(cmn::IpcEMsgUnqPtr eMsg); 19 | 20 | private: 21 | GtpMsgHandler(); 22 | 23 | void handleCreateSessionResponseMsg_v(cmn::IpcEMsgUnqPtr eMsg, uint32_t ueIdx); 24 | void handleModifyBearerResponseMsg_v(cmn::IpcEMsgUnqPtr eMsg, uint32_t ueIdx); 25 | void handleDeleteSessionResponseMsg_v(cmn::IpcEMsgUnqPtr eMsg, uint32_t ueIdx); 26 | void handleReleaseBearerResponseMsg_v(cmn::IpcEMsgUnqPtr eMsg, uint32_t ueIdx); 27 | void handleDdnMsg_v(cmn::IpcEMsgUnqPtr eMsg, uint32_t ueIdx); 28 | void handleCreateBearerRequestMsg_v(cmn::IpcEMsgUnqPtr eMsg, uint32_t ueIdx); 29 | void handleDeleteBearerRequestMsg_v(cmn::IpcEMsgUnqPtr eMsg, uint32_t ueIdx); 30 | }; 31 | 32 | #endif /* INCLUDE_MME_APP_MSGHANDLERS_GTPMSGHANDLER_H_ */ 33 | -------------------------------------------------------------------------------- /include/mme-app/msgHandlers/s6MsgHandler.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Infosys Limited   3 | *    4 | * SPDX-License-Identifier: Apache-2.0     5 | */ 6 | 7 | #ifndef INCLUDE_MME_APP_MSGHANDLERS_S6MSGHANDLER_H_ 8 | #define INCLUDE_MME_APP_MSGHANDLERS_S6MSGHANDLER_H_ 9 | 10 | #include 11 | #include 12 | 13 | class S6MsgHandler { 14 | public: 15 | static S6MsgHandler* Instance(); 16 | virtual ~S6MsgHandler(); 17 | 18 | void handleS6Message_v(cmn::IpcEMsgUnqPtr eMsg); 19 | 20 | private: 21 | S6MsgHandler(); 22 | 23 | void handleAuthInfoAnswer_v(cmn::IpcEMsgUnqPtr eMsg, uint32_t ueIdx); 24 | void handleUpdateLocationAnswer_v(cmn::IpcEMsgUnqPtr eMsg, uint32_t ueIdx); 25 | void handlePurgeAnswer_v(cmn::IpcEMsgUnqPtr eMsg, uint32_t ueIdx); 26 | void handleCancelLocationRequest_v(cmn::IpcEMsgUnqPtr eMsg); 27 | 28 | }; 29 | 30 | #endif /* INCLUDE_MME_APP_MSGHANDLERS_S6MSGHANDLER_H_ */ 31 | -------------------------------------------------------------------------------- /include/mme-app/secUtils.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | 8 | 9 | class SecUtils 10 | { 11 | public: 12 | static void create_integrity_key(uint8_t int_alg, 13 | unsigned char *kasme, unsigned char *int_key); 14 | 15 | static void create_ciphering_key(uint8_t sec_alg, 16 | unsigned char *kasme, unsigned char *int_key); 17 | 18 | static void create_kenb_key(unsigned char *kasme, unsigned char *kenb_key, 19 | unsigned int seq_no); 20 | 21 | static void create_nh_key(const unsigned char *kasme, unsigned char *nh_key, 22 | const unsigned char *old_nh_key); 23 | 24 | static void calculate_hmac_sha256(const unsigned char *input_data, 25 | int input_data_len, const unsigned char *key, 26 | int key_length, void *output, unsigned int *out_len); 27 | }; 28 | -------------------------------------------------------------------------------- /include/mme-app/utils/defaultMmeProcedureCtxt.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Infosys Limited 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | #ifndef INCLUDE_MME_APP_UTILS_DEFAULTMMEPROCEDURECTXT_H_ 8 | #define INCLUDE_MME_APP_UTILS_DEFAULTMMEPROCEDURECTXT_H_ 9 | 10 | #include 11 | 12 | namespace mme 13 | { 14 | class DefaultMmeProcedureCtxt : public MmeProcedureCtxt 15 | { 16 | public: 17 | static DefaultMmeProcedureCtxt* Instance(); 18 | 19 | private: 20 | DefaultMmeProcedureCtxt(); 21 | ~DefaultMmeProcedureCtxt(); 22 | }; 23 | } 24 | 25 | 26 | 27 | #endif /* INCLUDE_MME_APP_UTILS_DEFAULTMMEPROCEDURECTXT_H_ */ 28 | -------------------------------------------------------------------------------- /include/mme-app/utils/mmeCauseUtils.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020-present, Infosys Limited. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | #ifndef INCLUDE_MME_APP_UTILS_MMECAUSEUTILS_H_ 8 | #define INCLUDE_MME_APP_UTILS_MMECAUSEUTILS_H_ 9 | 10 | #include 11 | #include 12 | 13 | namespace mme 14 | { 15 | class MmeCauseUtils 16 | { 17 | public: 18 | static uint32_t convertToNasEmmCause(ERROR_CODES mmeErrorCause); 19 | static uint32_t convertToGtpCause(ERROR_CODES mmeErrorCause); 20 | static S1apCause convertToS1apCause(ERROR_CODES mmeErrorCause); 21 | static S1apCause convertToS1apCause(uint32_t gtpCause); 22 | static uint32_t convertToGtpCause(s1apCause_t s1apCause); 23 | static uint32_t convertToGtpCause(esm_cause_t esmCause); 24 | 25 | private: 26 | MmeCauseUtils(); 27 | ~MmeCauseUtils(); 28 | }; 29 | } 30 | 31 | #endif /* INCLUDE_MME_APP_UTILS_MMECAUSETYPES_H_ */ 32 | 33 | 34 | -------------------------------------------------------------------------------- /include/mme-app/utils/mmeTimerUtils.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020-present Infosys Limited 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | #ifndef INCLUDE_MME_APP_UTILS_MMETIMERUTILS_H_ 8 | #define INCLUDE_MME_APP_UTILS_MMETIMERUTILS_H_ 9 | 10 | #include 11 | 12 | class TimerContext; 13 | namespace mme 14 | { 15 | class MmeUeTimerContext; 16 | 17 | class MmeTimerUtils 18 | { 19 | public: 20 | static TimerContext* startTimer(uint32_t durationMs, 21 | uint32_t ueIdx, 22 | uint16_t timerType, 23 | uint16_t timerId); 24 | static uint32_t stopTimer(TimerContext* timerCtxt); 25 | static void onTimeout(TimerContext* timerCtxt); 26 | 27 | private: 28 | MmeTimerUtils(); 29 | ~MmeTimerUtils(); 30 | }; 31 | } 32 | 33 | #endif /* INCLUDE_MME_APP_UTILS_MMETIMERUTILS_H_ */ 34 | -------------------------------------------------------------------------------- /include/s11/s11_config.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd. 4 | * Copyright (c) 2017 Intel Corporation 5 | * 6 | * SPDX-License-Identifier: Apache-2.0 7 | */ 8 | 9 | #ifndef __S11_CONFIG_H_ 10 | #define __S11_CONFIG_H_ 11 | 12 | #include 13 | 14 | typedef struct s11_config 15 | { 16 | unsigned int sgw_ip; 17 | unsigned int pgw_ip; 18 | unsigned int egtp_def_port; 19 | unsigned int local_egtp_ip; 20 | } s11_config_t; 21 | 22 | void 23 | init_parser(char *path); 24 | 25 | int 26 | parse_s11_conf(); 27 | 28 | #endif /*__S11_CONFIG_H*/ 29 | -------------------------------------------------------------------------------- /include/s11/s11_options.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | uint64_t conv_uint8_arr_to_uint64(const uint8_t* bit_rate_array); 16 | uint8_t create_sock_addr( 17 | struct sockaddr_in *addr, 18 | uint16_t port, uint32_t val); 19 | 20 | void parse_args(int argc, char **argv); 21 | -------------------------------------------------------------------------------- /include/s1ap/enb.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd. 4 | * Copyright (c) 2017 Intel Corporation 5 | * 6 | * SPDX-License-Identifier: Apache-2.0 7 | */ 8 | 9 | #ifndef __ENB_H_ 10 | #define __ENB_H_ 11 | 12 | #endif /*__ENB_H_*/ 13 | -------------------------------------------------------------------------------- /include/s1ap/options.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd. 4 | * Copyright (c) 2017 Intel Corporation 5 | * 6 | * SPDX-License-Identifier: Apache-2.0 7 | */ 8 | 9 | /* 10 | * options.h 11 | * 12 | */ 13 | 14 | #ifndef OPTIONS_H_ 15 | #define OPTIONS_H_ 16 | 17 | #include "s1ap.h" 18 | 19 | void parse_args(int argc, char **argv); 20 | void log_buffer_free(char** buffer); 21 | void convert_imsi_to_bcd_str(uint8_t *src, uint8_t* dest); 22 | 23 | #endif /* OPTIONS_H_ */ 24 | -------------------------------------------------------------------------------- /include/s1ap/s1apContextManager/s1apContextWrapper.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | #ifndef __S1apContextWrappers_H 8 | #define __S1apContextWrappers_H 9 | 10 | 11 | #include "stdint.h" 12 | 13 | #include "s1_common_types.h" 14 | 15 | 16 | uint32_t createControlBlock_cpp(); 17 | uint32_t findControlBlockWithEnbId_cpp(uint32_t enbId); 18 | uint32_t findControlBlockWithEnbFd_cpp(uint32_t enbFd); 19 | uint32_t getEnbFdWithCbIndex_cpp(uint32_t cbIndex); 20 | uint32_t setValuesForEnbCtx_cpp(uint32_t cbIndex, 21 | struct EnbStruct* enbCtx, bool update); 22 | uint32_t updateValuesForEnbCtx_cpp(uint32_t cbIndex, 23 | struct EnbStruct* enbCtx); 24 | 25 | bool clearControlBlockDetailsEnbFd_cpp(uint32_t enbFd, struct EnbStruct *); 26 | void runRestServer_cpp(uint32_t port, void (*func)(char**, int, int)); 27 | int getConfigPlmns_cpp(char *plmns[]); 28 | int getConfigVersion_cpp(); 29 | #endif 30 | -------------------------------------------------------------------------------- /include/s1ap/s1apContextManager/s1apContextWrapper_c.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | #ifndef __S1apContextWrappers_C_H 8 | #define __S1apContextWrappers_C_H 9 | 10 | 11 | #ifdef __cplusplus 12 | extern "C" { 13 | #endif 14 | #include 15 | #include "s1_common_types.h" 16 | 17 | uint32_t createControlBlock(); 18 | uint32_t findControlBlockWithEnbId(uint32_t enbId); 19 | uint32_t findControlBlockWithEnbFd(uint32_t enbFd); 20 | uint32_t getEnbFdWithCbIndex(uint32_t cbIndex); 21 | uint32_t setValuesForEnbCtx(uint32_t cbIndex, 22 | struct EnbStruct* enbCtx, 23 | bool update); 24 | 25 | bool clearControlBlockDetailsEnbFd(uint32_t sd, struct EnbStruct *temp); 26 | void runRestServer(uint32_t port, void (*func)(char **, int, int)); 27 | int getConfigVersion(); 28 | int getConfigPlmns(char *plmns[]); 29 | 30 | #ifdef __cplusplus 31 | } 32 | #endif 33 | #endif 34 | -------------------------------------------------------------------------------- /include/s1ap/s1apContextManager/s1apResthandler.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | 8 | 9 | #ifndef _MME_RESTHANDLER_H_ 10 | #define _MME_RESTHANDLER_H_ 11 | 12 | #include 13 | #include 14 | #include 15 | 16 | extern int configVersion; 17 | extern int num_plmns_cpp; 18 | extern char *plmns_cpp[1000]; 19 | 20 | class RestHandler : public Pistache::Http::Handler { 21 | 22 | public: 23 | RestHandler(void (*func)(char **, int, int)) { 24 | configCallback = func; 25 | } 26 | void (*configCallback)(char **, int, int); 27 | HTTP_PROTOTYPE(RestHandler) 28 | void onRequest(const Pistache::Http::Request& request, Pistache::Http::ResponseWriter response); 29 | }; 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /include/s1ap/s1ap_ie.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd. 4 | * Copyright (c) 2017 Intel Corporation 5 | * 6 | * SPDX-License-Identifier: Apache-2.0 7 | */ 8 | 9 | #ifndef __S1AP_IE_H_ 10 | #define __S1AP_IE_H_ 11 | 12 | #include "s1ap_msg_codes.h" 13 | #include "s1ap_structs.h" 14 | 15 | 16 | #define S1AP_INITUE_IEs 5 17 | 18 | /*** IE parsing functions ***/ 19 | typedef void * (ie_parser_function)(char *msg, int len); 20 | 21 | //ie_parser_function ie_parser[32];//={}; 22 | 23 | void* ie_parse_global_enb_id(char *msg, int len); 24 | void* ie_parse_enb_name(char *msg, int len); 25 | void* ie_parse_supported_TAs(char *msg, int len); 26 | void* ie_parse_pagins_DRX(char *msg, int len); 27 | 28 | /*** IE parsing functions end***/ 29 | 30 | #endif /*S1AP_IE_H_*/ 31 | -------------------------------------------------------------------------------- /include/s1ap/sctp_conn.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd. 4 | * Copyright (c) 2017 Intel Corporation 5 | * 6 | * SPDX-License-Identifier: Apache-2.0 7 | */ 8 | 9 | #ifndef __S1AP_SCTP_CONN_H_ 10 | #define __S1AP_SCTP_CONN_H_ 11 | 12 | #include 13 | #include 14 | #include 15 | #include 16 | 17 | #define MAX_STREAM 5 18 | #define MAX_PENDING_CONN 5 19 | #define ENB_PORT 62324 20 | 21 | int create_sctp_socket(unsigned int remote_ip, unsigned short port); 22 | 23 | int accept_sctp_socket(int sockfd); 24 | 25 | int recv_sctp_msg(int sockfd, unsigned char *buf, size_t len); 26 | 27 | int send_sctp_msg(int connSock, unsigned char *buffer, size_t len, uint16_t stream_no); 28 | 29 | int send_sctp_msg_with_fd(int connSock, unsigned char *buffer, size_t len, uint16_t stream_no); 30 | int close_sctp_socket(int sockfd); 31 | 32 | #endif /*__S1AP_SCTP_CONN_H*/ 33 | -------------------------------------------------------------------------------- /include/stateMachineFwk/actionTable.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | #include 8 | #include 9 | #include "smTypes.h" 10 | 11 | #ifndef ACTIONTABLE_H_ 12 | #define ACTIONTABLE_H_ 13 | 14 | namespace SM 15 | { 16 | 17 | class ControlBlock; 18 | class State; 19 | 20 | using namespace std; 21 | 22 | class ActionTable 23 | { 24 | public: 25 | ActionTable(); 26 | virtual ~ActionTable(); 27 | 28 | virtual void display(); 29 | 30 | ActStatus executeActions(ControlBlock& cb, State* statep); 31 | void addAction(ActionPointer act); 32 | void setNextState(State*st); 33 | private: 34 | deque actionsQ; 35 | State* nextStatep; 36 | }; 37 | } 38 | #endif /* ACTIONTABLE_H_ */ 39 | -------------------------------------------------------------------------------- /include/stateMachineFwk/event.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | #ifndef EVENT_H_ 8 | #define EVENT_H_ 9 | 10 | #include 11 | #include 12 | #include 13 | 14 | using namespace std; 15 | 16 | namespace SM 17 | { 18 | class Event 19 | { 20 | public: 21 | Event(); 22 | Event(uint16_t evtID, cmn::EventMsgShPtr eventData); 23 | virtual ~Event(); 24 | 25 | inline uint16_t getEventId()const 26 | { 27 | return eventID; 28 | } 29 | 30 | inline void setEventId(uint16_t evt) 31 | { 32 | eventID = evt; 33 | } 34 | 35 | cmn::EventMsgShPtr getEventData() const; 36 | virtual void display(); 37 | 38 | private: 39 | uint16_t eventID; 40 | cmn::EventMsgShPtr eventData; 41 | }; 42 | } 43 | 44 | #endif /* EVENT_H_ */ 45 | -------------------------------------------------------------------------------- /include/stateMachineFwk/permDataBlock.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | #ifndef PERMDATABLOCK_H_ 8 | #define PERMDATABLOCK_H_ 9 | 10 | namespace SM 11 | { 12 | class PermDataBlock 13 | { 14 | public: 15 | PermDataBlock(); 16 | virtual ~PermDataBlock(); 17 | virtual void display(); 18 | 19 | private: 20 | // Add permanant data fields here 21 | unsigned int contextID; 22 | }; 23 | } 24 | 25 | #endif /* PERMDATABLOCK_H_ */ 26 | -------------------------------------------------------------------------------- /include/stateMachineFwk/procedureQueue.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | #ifndef PROCEDUREQUEUE_H_ 8 | #define PROCEDUREQUEUE_H_ 9 | 10 | #include 11 | #include 12 | #include 13 | 14 | using namespace std; 15 | 16 | namespace SM 17 | { 18 | 19 | class ControlBlock; 20 | 21 | class ProcedureQueue 22 | { 23 | public: 24 | ProcedureQueue(); 25 | ~ProcedureQueue(); 26 | 27 | ControlBlock* pop(); 28 | bool push(ControlBlock* cb); 29 | 30 | private: 31 | queue cbQ; 32 | std::mutex mutex_m; 33 | sem_t pop_semaphore; 34 | }; 35 | } 36 | #endif /* PROCEDUREQUEUE_H_ */ 37 | -------------------------------------------------------------------------------- /include/stateMachineFwk/stateMachineEngine.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | #ifndef STATEMACHINEENGINE_H_ 8 | #define STATEMACHINEENGINE_H_ 9 | 10 | #include 11 | #include "smTypes.h" 12 | #include "procedureQueue.h" 13 | #include "event.h" 14 | 15 | namespace SM 16 | { 17 | class State; 18 | class StateMachineEngine 19 | { 20 | public: 21 | ~StateMachineEngine(); 22 | static StateMachineEngine* Instance(); 23 | void run(); 24 | bool addCBToProcQ(ControlBlock* cb); 25 | ActStatus handleProcedureEvent(ControlBlock& cb, StateMachineContext& smCtxt); 26 | void registerSMExceptionCb(StateMachineExceptionCallbk smExceptionCb); 27 | void handleSMExceptionCb(ControlBlock& cb, uint8_t err_code); 28 | private: 29 | StateMachineEngine(); 30 | 31 | ProcedureQueue procQ_m; 32 | 33 | StateMachineExceptionCallbk smExceptionCb_m; 34 | }; 35 | } 36 | 37 | #endif /* STATEMACHINEENGINE_H_ */ 38 | -------------------------------------------------------------------------------- /include/stateMachineFwk/tempDataBlock.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | #ifndef TEMPDATABLOCK_H_ 8 | #define TEMPDATABLOCK_H_ 9 | 10 | namespace SM 11 | { 12 | class State; 13 | class TempDataBlock 14 | { 15 | public: 16 | TempDataBlock(); 17 | virtual ~TempDataBlock(); 18 | 19 | virtual void display(); 20 | 21 | State* getCurrentState(); 22 | void setNextState(State* state); 23 | 24 | TempDataBlock* getNextTempDataBlock(); 25 | void setNextTempDataBlock(TempDataBlock* tdb_p); 26 | 27 | protected: 28 | State* currentStatep; 29 | TempDataBlock* next; 30 | }; 31 | } 32 | 33 | #endif /* TEMPDATABLOCK_H_ */ 34 | 35 | -------------------------------------------------------------------------------- /patches/pistache.patch.1.txt: -------------------------------------------------------------------------------- 1 | diff --git a/include/pistache/router.h b/include/pistache/router.h 2 | index 7ca53a3..667c665 100644 3 | --- a/include/pistache/router.h 4 | +++ b/include/pistache/router.h 5 | @@ -330,8 +330,7 @@ template 6 | struct BindChecks { 7 | constexpr static bool request_check = 8 | std::is_const::type>::value && 9 | - std::is_lvalue_reference::type>::value && 10 | - std::is_same::type, Rest::Request>::value; 11 | + std::is_lvalue_reference::type>::value; 12 | 13 | constexpr static bool response_check = 14 | !std::is_const::type>::value && 15 | diff --git a/include/pistache/string_logger.h b/include/pistache/string_logger.h 16 | index a60f88f..3f55ecf 100644 17 | --- a/include/pistache/string_logger.h 18 | +++ b/include/pistache/string_logger.h 19 | @@ -15,7 +15,7 @@ namespace Log { 20 | 21 | enum class Level { 22 | TRACE, 23 | - DEBUG, 24 | + DEBUG1, 25 | INFO, 26 | WARN, 27 | ERROR, 28 | -------------------------------------------------------------------------------- /pyserver/Dockerfile: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2020-present Open Networking Foundation 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | # 6 | 7 | FROM ubuntu:18.04 8 | 9 | RUN apt update -y 10 | RUN apt install python3 python3-dev python3-pip -y 11 | RUN pip3 install flask 12 | RUN pip3 install prometheus_client 13 | 14 | WORKDIR /openmme 15 | COPY ./monitor_client.py ./ 16 | COPY ./conf ./conf 17 | -------------------------------------------------------------------------------- /pyserver/conf/mme_exporter.json: -------------------------------------------------------------------------------- 1 | { 2 | "edges": [ 3 | { 4 | "id": "onf-menlo-b48-1", 5 | "edgeName": "edge-onf-menlo", 6 | "tac": 202 7 | }, 8 | { 9 | "id": "onf-menlo-b7-1", 10 | "edgeName": "edge-onf-menlo", 11 | "tac": 17 12 | } 13 | ], 14 | "phoneTypes": [ 15 | { 16 | "imsi": "315010999912345", 17 | "phoneType": "iPhone 11" 18 | }, 19 | { 20 | "imsi": "315010999912342", 21 | "phoneType": "Pixel 4" 22 | } 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /pyserver/templates/monitor_tool.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | IMSI LIST 4 | 5 | 6 |

IMSI LIST in MME

7 | {% for acct in accts %} 8 | 9 | {% endfor %} 10 | 11 | 12 | -------------------------------------------------------------------------------- /scripts/GtpV2StackCodeGen/README.txt: -------------------------------------------------------------------------------- 1 | Requirements: 2 | 1.Python3.6. 3 | 2.Install the template-toolkit package. 4 | a. pip3 install Template-Toolkit-Python or 5 | b. git clone https://github.com/lmr/Template-Toolkit-Python, and set the path of the package in the datatypeCodeGen.py,groupedIECodeGen.py,iECodeGen.py,msgCodeGen.py,xlUtils.py script [as argument in sys.path.append] 6 | 7 | Inputs: 8 | 1 Excel file with 4 spreadsheets: 9 | Message Modeling ,IE Modeling,Grouped IE Modeling and DataType Modeling: Defines the message structure,IEs,Grouped IEs and Datatype of IEs for the GTP classes to be generated . 10 | Output: 11 | 1. IE Classes .cpp and header files. 12 | 2. Message Classes .cpp and header files. 13 | 3. gtpV2stack .cpp and header files 14 | 4. MakeFile 15 | 16 | 17 | Remove all existing generated Files: 18 | -Use below commands: 19 | rm ../../src/gtpV2Codec/ieClasses/*.cpp ../../src/gtpV2Codec/ieClasses/*.h; 20 | rm ../../src/gtpV2Codec/msgClasses/*.cpp ../../src/gtpV2Codec/msgClasses/*.h; 21 | rm ../../src/gtpV2Codec/Makefile; 22 | Execution: 23 | -Run the below command: 24 | python3 startCodeGen.py 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /scripts/GtpV2StackCodeGen/dataModel/prototypeV8.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/scripts/GtpV2StackCodeGen/dataModel/prototypeV8.xlsx -------------------------------------------------------------------------------- /scripts/GtpV2StackCodeGen/startCodeGen.py: -------------------------------------------------------------------------------- 1 | 2 | # Copyright 2019-present Infosys Limited      3 | # SPDX-License-Identifier: Apache-2.0   4 | 5 | from iECodeGen import GenerateIeClass 6 | from datatypeCodeGen import GenerateDataTypeClass 7 | from xlUtils import xlUtils 8 | from msgCodeGen import GenerateMsgClass 9 | from groupedIECodeGen import GenerateGrpIeClass 10 | 11 | GenerateIeClass() 12 | GenerateDataTypeClass() 13 | GenerateMsgClass() 14 | GenerateGrpIeClass() 15 | 16 | xlUtils.generateMakeFile() 17 | -------------------------------------------------------------------------------- /scripts/SMCodeGen/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2019-present Infosys Limited 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | # 6 | -------------------------------------------------------------------------------- /scripts/SMCodeGen/templates/ctxtManagerTmpls/childAPIHeader.tt: -------------------------------------------------------------------------------- 1 | [%- listType = Item.Type.match('^std\:\:(list|vector|array)\<((\w+\:{0,2}\w+)((\*|\&))?)(\,\d+)?\>$') -%] 2 | [%- IF listType %] 3 | [%- Param.Name = Item.Name %][%- Param.Type = listType.1 %][%- Param.Properties.accessor = "mutable" %] 4 | [%- IF listType.0 =='list' %] 5 | [% INCLUDE templates/ctxtManagerTmpls/listAPIHeader.tt %] 6 | [%- ELSIF listType.0 =='vector'%] 7 | [% INCLUDE templates/ctxtManagerTmpls/vectorAPIHeader.tt %] 8 | [%- ELSIF listType.0 == 'array'%] 9 | [% INCLUDE templates/ctxtManagerTmpls/arrayAPIHeader.tt %] 10 | [%-END%] 11 | [%- ELSE %] 12 | /**************************************** 13 | * set[% Item.Name %] 14 | * set [% Item.Name %] to [% dataBlockClassName %] 15 | ****************************************/ 16 | void set[% Item.Name %]( [% Item.Name %]* [% Item.Name %]p ) ; 17 | 18 | /**************************************** 19 | * get[% Item.Name %] 20 | * get [% Item.Name %] to [% dataBlockClassName %] 21 | ****************************************/ 22 | [% Item.Name %]* get[% Item.Name %](); 23 | [%- END %] 24 | -------------------------------------------------------------------------------- /scripts/prometheus/README.md: -------------------------------------------------------------------------------- 1 | License & Copyright 2 | ---- 3 | 4 | Copyright 2020-present Open Networking Foundation 5 | SPDX-License-Identifier: Apache-2.0 6 | 7 | How to use autocodegen 8 | 1. write json file 9 | 2. python3.6 autocodegen.py 10 | 3. outputfiles are generated in current directory. Move those files to appropriate directory. 11 | -------------------------------------------------------------------------------- /scripts/prometheus/mmeStats.json.license: -------------------------------------------------------------------------------- 1 | Copyright 2019-present Open Networking Foundation 2 | SPDX-License-Identifier: Apache-2.0 3 | -------------------------------------------------------------------------------- /src/cmn/componentDb.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020-present Infosys Limited 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | #include "componentDb.h" 8 | #include 9 | 10 | namespace cmn 11 | { 12 | void ComponentDb::registerComponent(uint16_t componentId, ComponentIf* comp) 13 | { 14 | auto ret = componentContainer.insert(std::pair < uint16_t, 15 | ComponentIf * >(componentId, comp)); 16 | assert(ret.second == true); 17 | } 18 | 19 | ComponentIf& ComponentDb::getComponent(uint16_t componentId) 20 | { 21 | std::map < uint16_t, ComponentIf * >::iterator it; 22 | it = componentContainer.find (componentId); 23 | 24 | assert( it != componentContainer.end()); 25 | return *(it->second); 26 | } 27 | 28 | ComponentDb compDb; 29 | } 30 | -------------------------------------------------------------------------------- /src/cmn/ipcChannel.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Infosys Limited 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | #include "../../include/cmn/ipcChannel.h" 8 | 9 | namespace cmn { 10 | namespace ipc { 11 | 12 | IpcChannel::IpcChannel(IpcChannelType ipcType): 13 | ipcType_m(ipcType), 14 | ipcHdl_m() 15 | { 16 | 17 | } 18 | 19 | IpcChannel::~IpcChannel() 20 | { 21 | 22 | } 23 | 24 | IpcChannelType IpcChannel::getIpcChannelType() const 25 | { 26 | return ipcType_m; 27 | } 28 | 29 | void IpcChannel::setIpcChannelType(const IpcChannelType ipcType) 30 | { 31 | ipcType_m = ipcType; 32 | } 33 | 34 | IpcChannelHdl IpcChannel::getIpcChannelHdl() const 35 | { 36 | return ipcHdl_m; 37 | } 38 | 39 | void IpcChannel::setIpcChannelHdl(const IpcChannelHdl ipcHdl, const IpcChannelType ipcType) 40 | { 41 | if (ipcType == IpcChannelType::tipc_c) 42 | ipcHdl_m.u32 = ipcHdl.u32; 43 | } 44 | 45 | } /* namespace ipc */ 46 | } /* namespace cmn */ 47 | -------------------------------------------------------------------------------- /src/common/log.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd. 4 | * Copyright (c) 2017 Intel Corporation 5 | * 6 | * SPDX-License-Identifier: Apache-2.0 7 | */ 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include "log.h" 18 | #include 19 | 20 | int pid = 0; 21 | char processName[255] = {0}; 22 | uint8_t logging_level; 23 | 24 | FILE *log_fp; 25 | 26 | void init_logging(char *env, char *file) 27 | { 28 | pid = getpid(); 29 | if(strcmp(env, "container") == 0) { 30 | log_fp = (FILE *)stderr; 31 | fprintf(log_fp, "init_logging %s", env); 32 | } else { 33 | log_fp = fopen(file, "a+"); 34 | if (log_fp == NULL) 35 | { 36 | printf("Could not open log file"); 37 | exit(0); 38 | } 39 | fprintf(log_fp, "init_logging %s", env); 40 | } 41 | logging_level = LOG_DEBUG; 42 | } 43 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/ambrIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef AMBRIE_H_ 14 | #define AMBRIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class AmbrIe: public GtpV2Ie { 21 | public: 22 | AmbrIe(); 23 | virtual ~AmbrIe(); 24 | 25 | bool encodeAmbrIe(MsgBuffer &buffer, 26 | AmbrIeData const &data); 27 | bool decodeAmbrIe(MsgBuffer &buffer, 28 | AmbrIeData &data, Uint16 length); 29 | void displayAmbrIe_v(AmbrIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* AMBRIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/ambrMmbrIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef AMBRMMBRIE_H_ 14 | #define AMBRMMBRIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class AmbrMmbrIe: public GtpV2Ie { 21 | public: 22 | AmbrMmbrIe(); 23 | virtual ~AmbrMmbrIe(); 24 | 25 | bool encodeAmbrMmbrIe(MsgBuffer &buffer, 26 | AmbrMmbrIeData const &data); 27 | bool decodeAmbrMmbrIe(MsgBuffer &buffer, 28 | AmbrMmbrIeData &data, Uint16 length); 29 | void displayAmbrMmbrIe_v(AmbrMmbrIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* AMBRMMBRIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/apnIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef APNIE_H_ 14 | #define APNIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class ApnIe: public GtpV2Ie { 21 | public: 22 | ApnIe(); 23 | virtual ~ApnIe(); 24 | 25 | bool encodeApnIe(MsgBuffer &buffer, 26 | ApnIeData const &data); 27 | bool decodeApnIe(MsgBuffer &buffer, 28 | ApnIeData &data, Uint16 length); 29 | void displayApnIe_v(ApnIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* APNIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/apnRestrictionIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef APNRESTRICTIONIE_H_ 14 | #define APNRESTRICTIONIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class ApnRestrictionIe: public GtpV2Ie { 21 | public: 22 | ApnRestrictionIe(); 23 | virtual ~ApnRestrictionIe(); 24 | 25 | bool encodeApnRestrictionIe(MsgBuffer &buffer, 26 | ApnRestrictionIeData const &data); 27 | bool decodeApnRestrictionIe(MsgBuffer &buffer, 28 | ApnRestrictionIeData &data, Uint16 length); 29 | void displayApnRestrictionIe_v(ApnRestrictionIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* APNRESTRICTIONIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/arpIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef ARPIE_H_ 14 | #define ARPIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class ArpIe: public GtpV2Ie { 21 | public: 22 | ArpIe(); 23 | virtual ~ArpIe(); 24 | 25 | bool encodeArpIe(MsgBuffer &buffer, 26 | ArpIeData const &data); 27 | bool decodeArpIe(MsgBuffer &buffer, 28 | ArpIeData &data, Uint16 length); 29 | void displayArpIe_v(ArpIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* ARPIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/bearerFlagsIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef BEARERFLAGSIE_H_ 14 | #define BEARERFLAGSIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class BearerFlagsIe: public GtpV2Ie { 21 | public: 22 | BearerFlagsIe(); 23 | virtual ~BearerFlagsIe(); 24 | 25 | bool encodeBearerFlagsIe(MsgBuffer &buffer, 26 | BearerFlagsIeData const &data); 27 | bool decodeBearerFlagsIe(MsgBuffer &buffer, 28 | BearerFlagsIeData &data, Uint16 length); 29 | void displayBearerFlagsIe_v(BearerFlagsIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* BEARERFLAGSIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/bearerQosIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef BEARERQOSIE_H_ 14 | #define BEARERQOSIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class BearerQosIe: public GtpV2Ie { 21 | public: 22 | BearerQosIe(); 23 | virtual ~BearerQosIe(); 24 | 25 | bool encodeBearerQosIe(MsgBuffer &buffer, 26 | BearerQosIeData const &data); 27 | bool decodeBearerQosIe(MsgBuffer &buffer, 28 | BearerQosIeData &data, Uint16 length); 29 | void displayBearerQosIe_v(BearerQosIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* BEARERQOSIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/bearerTftIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef BEARERTFTIE_H_ 14 | #define BEARERTFTIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class BearerTftIe: public GtpV2Ie { 21 | public: 22 | BearerTftIe(); 23 | virtual ~BearerTftIe(); 24 | 25 | bool encodeBearerTftIe(MsgBuffer &buffer, 26 | BearerTftIeData const &data); 27 | bool decodeBearerTftIe(MsgBuffer &buffer, 28 | BearerTftIeData &data, Uint16 length); 29 | void displayBearerTftIe_v(BearerTftIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* BEARERTFTIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/causeIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef CAUSEIE_H_ 14 | #define CAUSEIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class CauseIe: public GtpV2Ie { 21 | public: 22 | CauseIe(); 23 | virtual ~CauseIe(); 24 | 25 | bool encodeCauseIe(MsgBuffer &buffer, 26 | CauseIeData const &data); 27 | bool decodeCauseIe(MsgBuffer &buffer, 28 | CauseIeData &data, Uint16 length); 29 | void displayCauseIe_v(CauseIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* CAUSEIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/chargingIdIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef CHARGINGIDIE_H_ 14 | #define CHARGINGIDIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class ChargingIdIe: public GtpV2Ie { 21 | public: 22 | ChargingIdIe(); 23 | virtual ~ChargingIdIe(); 24 | 25 | bool encodeChargingIdIe(MsgBuffer &buffer, 26 | ChargingIdIeData const &data); 27 | bool decodeChargingIdIe(MsgBuffer &buffer, 28 | ChargingIdIeData &data, Uint16 length); 29 | void displayChargingIdIe_v(ChargingIdIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* CHARGINGIDIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/counterIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef COUNTERIE_H_ 14 | #define COUNTERIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class CounterIe: public GtpV2Ie { 21 | public: 22 | CounterIe(); 23 | virtual ~CounterIe(); 24 | 25 | bool encodeCounterIe(MsgBuffer &buffer, 26 | CounterIeData const &data); 27 | bool decodeCounterIe(MsgBuffer &buffer, 28 | CounterIeData &data, Uint16 length); 29 | void displayCounterIe_v(CounterIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* COUNTERIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/delayValueIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef DELAYVALUEIE_H_ 14 | #define DELAYVALUEIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class DelayValueIe: public GtpV2Ie { 21 | public: 22 | DelayValueIe(); 23 | virtual ~DelayValueIe(); 24 | 25 | bool encodeDelayValueIe(MsgBuffer &buffer, 26 | DelayValueIeData const &data); 27 | bool decodeDelayValueIe(MsgBuffer &buffer, 28 | DelayValueIeData &data, Uint16 length); 29 | void displayDelayValueIe_v(DelayValueIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* DELAYVALUEIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/ebiIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef EBIIE_H_ 14 | #define EBIIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class EbiIe: public GtpV2Ie { 21 | public: 22 | EbiIe(); 23 | virtual ~EbiIe(); 24 | 25 | bool encodeEbiIe(MsgBuffer &buffer, 26 | EbiIeData const &data); 27 | bool decodeEbiIe(MsgBuffer &buffer, 28 | EbiIeData &data, Uint16 length); 29 | void displayEbiIe_v(EbiIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* EBIIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/epcTimerIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef EPCTIMERIE_H_ 14 | #define EPCTIMERIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class EpcTimerIe: public GtpV2Ie { 21 | public: 22 | EpcTimerIe(); 23 | virtual ~EpcTimerIe(); 24 | 25 | bool encodeEpcTimerIe(MsgBuffer &buffer, 26 | EpcTimerIeData const &data); 27 | bool decodeEpcTimerIe(MsgBuffer &buffer, 28 | EpcTimerIeData &data, Uint16 length); 29 | void displayEpcTimerIe_v(EpcTimerIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* EPCTIMERIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/epcoIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef EPCOIE_H_ 14 | #define EPCOIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class EpcoIe: public GtpV2Ie { 21 | public: 22 | EpcoIe(); 23 | virtual ~EpcoIe(); 24 | 25 | bool encodeEpcoIe(MsgBuffer &buffer, 26 | EpcoIeData const &data); 27 | bool decodeEpcoIe(MsgBuffer &buffer, 28 | EpcoIeData &data, Uint16 length); 29 | void displayEpcoIe_v(EpcoIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* EPCOIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/fContainerIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef FCONTAINERIE_H_ 14 | #define FCONTAINERIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class FContainerIe: public GtpV2Ie { 21 | public: 22 | FContainerIe(); 23 | virtual ~FContainerIe(); 24 | 25 | bool encodeFContainerIe(MsgBuffer &buffer, 26 | FContainerIeData const &data); 27 | bool decodeFContainerIe(MsgBuffer &buffer, 28 | FContainerIeData &data, Uint16 length); 29 | void displayFContainerIe_v(FContainerIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* FCONTAINERIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/fTeidIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef FTEIDIE_H_ 14 | #define FTEIDIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class FTeidIe: public GtpV2Ie { 21 | public: 22 | FTeidIe(); 23 | virtual ~FTeidIe(); 24 | 25 | bool encodeFTeidIe(MsgBuffer &buffer, 26 | FTeidIeData const &data); 27 | bool decodeFTeidIe(MsgBuffer &buffer, 28 | FTeidIeData &data, Uint16 length); 29 | void displayFTeidIe_v(FTeidIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* FTEIDIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/fqCsidIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef FQCSIDIE_H_ 14 | #define FQCSIDIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class FqCsidIe: public GtpV2Ie { 21 | public: 22 | FqCsidIe(); 23 | virtual ~FqCsidIe(); 24 | 25 | bool encodeFqCsidIe(MsgBuffer &buffer, 26 | FqCsidIeData const &data); 27 | bool decodeFqCsidIe(MsgBuffer &buffer, 28 | FqCsidIeData &data, Uint16 length); 29 | void displayFqCsidIe_v(FqCsidIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* FQCSIDIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/fqdnIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef FQDNIE_H_ 14 | #define FQDNIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class FqdnIe: public GtpV2Ie { 21 | public: 22 | FqdnIe(); 23 | virtual ~FqdnIe(); 24 | 25 | bool encodeFqdnIe(MsgBuffer &buffer, 26 | FqdnIeData const &data); 27 | bool decodeFqdnIe(MsgBuffer &buffer, 28 | FqdnIeData &data, Uint16 length); 29 | void displayFqdnIe_v(FqdnIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* FQDNIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/imsiIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef IMSIIE_H_ 14 | #define IMSIIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class ImsiIe: public GtpV2Ie { 21 | public: 22 | ImsiIe(); 23 | virtual ~ImsiIe(); 24 | 25 | bool encodeImsiIe(MsgBuffer &buffer, 26 | ImsiIeData const &data); 27 | bool decodeImsiIe(MsgBuffer &buffer, 28 | ImsiIeData &data, Uint16 length); 29 | void displayImsiIe_v(ImsiIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* IMSIIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/indicationIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef INDICATIONIE_H_ 14 | #define INDICATIONIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class IndicationIe: public GtpV2Ie { 21 | public: 22 | IndicationIe(); 23 | virtual ~IndicationIe(); 24 | 25 | bool encodeIndicationIe(MsgBuffer &buffer, 26 | IndicationIeData const &data); 27 | bool decodeIndicationIe(MsgBuffer &buffer, 28 | IndicationIeData &data, Uint16 length); 29 | void displayIndicationIe_v(IndicationIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* INDICATIONIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/integerNumberIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef INTEGERNUMBERIE_H_ 14 | #define INTEGERNUMBERIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class IntegerNumberIe: public GtpV2Ie { 21 | public: 22 | IntegerNumberIe(); 23 | virtual ~IntegerNumberIe(); 24 | 25 | bool encodeIntegerNumberIe(MsgBuffer &buffer, 26 | IntegerNumberIeData const &data); 27 | bool decodeIntegerNumberIe(MsgBuffer &buffer, 28 | IntegerNumberIeData &data, Uint16 length); 29 | void displayIntegerNumberIe_v(IntegerNumberIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* INTEGERNUMBERIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/ip4cpIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef IP4CPIE_H_ 14 | #define IP4CPIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class Ip4cpIe: public GtpV2Ie { 21 | public: 22 | Ip4cpIe(); 23 | virtual ~Ip4cpIe(); 24 | 25 | bool encodeIp4cpIe(MsgBuffer &buffer, 26 | Ip4cpIeData const &data); 27 | bool decodeIp4cpIe(MsgBuffer &buffer, 28 | Ip4cpIeData &data, Uint16 length); 29 | void displayIp4cpIe_v(Ip4cpIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* IP4CPIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/ipAddressIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef IPADDRESSIE_H_ 14 | #define IPADDRESSIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class IpAddressIe: public GtpV2Ie { 21 | public: 22 | IpAddressIe(); 23 | virtual ~IpAddressIe(); 24 | 25 | bool encodeIpAddressIe(MsgBuffer &buffer, 26 | IpAddressIeData const &data); 27 | bool decodeIpAddressIe(MsgBuffer &buffer, 28 | IpAddressIeData &data, Uint16 length); 29 | void displayIpAddressIe_v(IpAddressIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* IPADDRESSIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/manual/gtpV2DataTypes_Manual.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2019-present Infosys Limited   3 |     4 | SPDX-License-Identifier: Apache-2.0   5 |    6 | */ 7 | 8 | 9 | 10 | 11 | #ifndef GTPV2DATATYPES_MANUAL_H_ 12 | #define GTPV2DATATYPES_MANUAL_H_ 13 | 14 | typedef struct 15 | { 16 | Uint8 length; 17 | Uint8 digits[16]; 18 | }DigitRegister; 19 | 20 | typedef struct 21 | { 22 | Uint16 length; 23 | Uint8 octets[16]; 24 | }OctetArraySmall; 25 | 26 | 27 | typedef struct 28 | { 29 | Uint16 length; 30 | Uint8 octets[64]; 31 | }OctetArrayMedium; 32 | 33 | typedef struct 34 | { 35 | Uint16 length; 36 | Uint8 octets[256]; 37 | }OctetArrayLarge; 38 | 39 | 40 | #endif /*GTPV2DATATYPES_MANUAL_H_*/ 41 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/manual/gtpV2GroupedIe.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2019-present Infosys Limited   3 |     4 | SPDX-License-Identifier: Apache-2.0   5 |    6 | */ 7 | 8 | 9 | 10 | #include "../../../gtpV2Codec/ieClasses/manual/gtpV2GroupedIe.h" 11 | 12 | GtpV2GroupedIe::GtpV2GroupedIe() { 13 | // TODO Auto-generated constructor stub 14 | 15 | } 16 | 17 | GtpV2GroupedIe::~GtpV2GroupedIe() { 18 | // TODO Auto-generated destructor stub 19 | } 20 | 21 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/manual/gtpV2GroupedIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2019-present Infosys Limited   3 |     4 | SPDX-License-Identifier: Apache-2.0   5 |    6 | */ 7 | 8 | 9 | #ifndef GTPV2GROUPEDIE_H_ 10 | #define GTPV2GROUPEDIE_H_ 11 | 12 | class GtpV2GroupedIe { 13 | public: 14 | GtpV2GroupedIe(); 15 | virtual ~GtpV2GroupedIe(); 16 | }; 17 | 18 | #endif /* GTPV2GROUPEDIE_H_ */ 19 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/manual/gtpV2Ie.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2019-present Infosys Limited   3 |     4 | SPDX-License-Identifier: Apache-2.0   5 |    6 | */ 7 | 8 | 9 | 10 | #ifndef GTPV2IE_H_ 11 | #define GTPV2IE_H_ 12 | 13 | #include "basicTypes.h" 14 | #include "msgBuffer.h" 15 | #include "../gtpV2IeDataTypes.h" 16 | 17 | #define IE_HEADER_SIZE 4 18 | 19 | typedef struct 20 | { 21 | Uint8 ieType; 22 | Uint16 length; 23 | Uint8 instance; 24 | }GtpV2IeHeader; 25 | 26 | class GtpV2Ie { 27 | public: 28 | GtpV2Ie(); 29 | virtual ~GtpV2Ie(); 30 | 31 | static void encodeGtpV2IeHeader(MsgBuffer &buffer, GtpV2IeHeader const &data); 32 | static void decodeGtpV2IeHeader(MsgBuffer &buffer, GtpV2IeHeader &data); 33 | static void reserveHeaderSpace(MsgBuffer &buffer); 34 | 35 | protected: 36 | Uint8 ieType; 37 | }; 38 | 39 | #endif /* GTPV2IE_H_ */ 40 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/mappedUeUsageTypeIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef MAPPEDUEUSAGETYPEIE_H_ 14 | #define MAPPEDUEUSAGETYPEIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class MappedUeUsageTypeIe: public GtpV2Ie { 21 | public: 22 | MappedUeUsageTypeIe(); 23 | virtual ~MappedUeUsageTypeIe(); 24 | 25 | bool encodeMappedUeUsageTypeIe(MsgBuffer &buffer, 26 | MappedUeUsageTypeIeData const &data); 27 | bool decodeMappedUeUsageTypeIe(MsgBuffer &buffer, 28 | MappedUeUsageTypeIeData &data, Uint16 length); 29 | void displayMappedUeUsageTypeIe_v(MappedUeUsageTypeIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* MAPPEDUEUSAGETYPEIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/meiIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef MEIIE_H_ 14 | #define MEIIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class MeiIe: public GtpV2Ie { 21 | public: 22 | MeiIe(); 23 | virtual ~MeiIe(); 24 | 25 | bool encodeMeiIe(MsgBuffer &buffer, 26 | MeiIeData const &data); 27 | bool decodeMeiIe(MsgBuffer &buffer, 28 | MeiIeData &data, Uint16 length); 29 | void displayMeiIe_v(MeiIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* MEIIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/metricIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef METRICIE_H_ 14 | #define METRICIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class MetricIe: public GtpV2Ie { 21 | public: 22 | MetricIe(); 23 | virtual ~MetricIe(); 24 | 25 | bool encodeMetricIe(MsgBuffer &buffer, 26 | MetricIeData const &data); 27 | bool decodeMetricIe(MsgBuffer &buffer, 28 | MetricIeData &data, Uint16 length); 29 | void displayMetricIe_v(MetricIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* METRICIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/msisdnIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef MSISDNIE_H_ 14 | #define MSISDNIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class MsisdnIe: public GtpV2Ie { 21 | public: 22 | MsisdnIe(); 23 | virtual ~MsisdnIe(); 24 | 25 | bool encodeMsisdnIe(MsgBuffer &buffer, 26 | MsisdnIeData const &data); 27 | bool decodeMsisdnIe(MsgBuffer &buffer, 28 | MsisdnIeData &data, Uint16 length); 29 | void displayMsisdnIe_v(MsisdnIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* MSISDNIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/nodeFeaturesIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef NODEFEATURESIE_H_ 14 | #define NODEFEATURESIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class NodeFeaturesIe: public GtpV2Ie { 21 | public: 22 | NodeFeaturesIe(); 23 | virtual ~NodeFeaturesIe(); 24 | 25 | bool encodeNodeFeaturesIe(MsgBuffer &buffer, 26 | NodeFeaturesIeData const &data); 27 | bool decodeNodeFeaturesIe(MsgBuffer &buffer, 28 | NodeFeaturesIeData &data, Uint16 length); 29 | void displayNodeFeaturesIe_v(NodeFeaturesIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* NODEFEATURESIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/nodeIdentifierIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef NODEIDENTIFIERIE_H_ 14 | #define NODEIDENTIFIERIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class NodeIdentifierIe: public GtpV2Ie { 21 | public: 22 | NodeIdentifierIe(); 23 | virtual ~NodeIdentifierIe(); 24 | 25 | bool encodeNodeIdentifierIe(MsgBuffer &buffer, 26 | NodeIdentifierIeData const &data); 27 | bool decodeNodeIdentifierIe(MsgBuffer &buffer, 28 | NodeIdentifierIeData &data, Uint16 length); 29 | void displayNodeIdentifierIe_v(NodeIdentifierIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* NODEIDENTIFIERIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/nodeTypeIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef NODETYPEIE_H_ 14 | #define NODETYPEIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class NodeTypeIe: public GtpV2Ie { 21 | public: 22 | NodeTypeIe(); 23 | virtual ~NodeTypeIe(); 24 | 25 | bool encodeNodeTypeIe(MsgBuffer &buffer, 26 | NodeTypeIeData const &data); 27 | bool decodeNodeTypeIe(MsgBuffer &buffer, 28 | NodeTypeIeData &data, Uint16 length); 29 | void displayNodeTypeIe_v(NodeTypeIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* NODETYPEIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/paaIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef PAAIE_H_ 14 | #define PAAIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class PaaIe: public GtpV2Ie { 21 | public: 22 | PaaIe(); 23 | virtual ~PaaIe(); 24 | 25 | bool encodePaaIe(MsgBuffer &buffer, 26 | PaaIeData const &data); 27 | bool decodePaaIe(MsgBuffer &buffer, 28 | PaaIeData &data, Uint16 length); 29 | void displayPaaIe_v(PaaIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* PAAIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/pcoIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef PCOIE_H_ 14 | #define PCOIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class PcoIe: public GtpV2Ie { 21 | public: 22 | PcoIe(); 23 | virtual ~PcoIe(); 24 | 25 | bool encodePcoIe(MsgBuffer &buffer, 26 | PcoIeData const &data); 27 | bool decodePcoIe(MsgBuffer &buffer, 28 | PcoIeData &data, Uint16 length); 29 | void displayPcoIe_v(PcoIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* PCOIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/pdnTypeIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef PDNTYPEIE_H_ 14 | #define PDNTYPEIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class PdnTypeIe: public GtpV2Ie { 21 | public: 22 | PdnTypeIe(); 23 | virtual ~PdnTypeIe(); 24 | 25 | bool encodePdnTypeIe(MsgBuffer &buffer, 26 | PdnTypeIeData const &data); 27 | bool decodePdnTypeIe(MsgBuffer &buffer, 28 | PdnTypeIeData &data, Uint16 length); 29 | void displayPdnTypeIe_v(PdnTypeIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* PDNTYPEIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/portNumberIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef PORTNUMBERIE_H_ 14 | #define PORTNUMBERIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class PortNumberIe: public GtpV2Ie { 21 | public: 22 | PortNumberIe(); 23 | virtual ~PortNumberIe(); 24 | 25 | bool encodePortNumberIe(MsgBuffer &buffer, 26 | PortNumberIeData const &data); 27 | bool decodePortNumberIe(MsgBuffer &buffer, 28 | PortNumberIeData &data, Uint16 length); 29 | void displayPortNumberIe_v(PortNumberIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* PORTNUMBERIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/ptiIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef PTIIE_H_ 14 | #define PTIIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class PtiIe: public GtpV2Ie { 21 | public: 22 | PtiIe(); 23 | virtual ~PtiIe(); 24 | 25 | bool encodePtiIe(MsgBuffer &buffer, 26 | PtiIeData const &data); 27 | bool decodePtiIe(MsgBuffer &buffer, 28 | PtiIeData &data, Uint16 length); 29 | void displayPtiIe_v(PtiIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* PTIIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/ranNasCauseIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef RANNASCAUSEIE_H_ 14 | #define RANNASCAUSEIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class RanNasCauseIe: public GtpV2Ie { 21 | public: 22 | RanNasCauseIe(); 23 | virtual ~RanNasCauseIe(); 24 | 25 | bool encodeRanNasCauseIe(MsgBuffer &buffer, 26 | RanNasCauseIeData const &data); 27 | bool decodeRanNasCauseIe(MsgBuffer &buffer, 28 | RanNasCauseIeData &data, Uint16 length); 29 | void displayRanNasCauseIe_v(RanNasCauseIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* RANNASCAUSEIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/ratTypeIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef RATTYPEIE_H_ 14 | #define RATTYPEIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class RatTypeIe: public GtpV2Ie { 21 | public: 22 | RatTypeIe(); 23 | virtual ~RatTypeIe(); 24 | 25 | bool encodeRatTypeIe(MsgBuffer &buffer, 26 | RatTypeIeData const &data); 27 | bool decodeRatTypeIe(MsgBuffer &buffer, 28 | RatTypeIeData &data, Uint16 length); 29 | void displayRatTypeIe_v(RatTypeIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* RATTYPEIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/recoveryIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef RECOVERYIE_H_ 14 | #define RECOVERYIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class RecoveryIe: public GtpV2Ie { 21 | public: 22 | RecoveryIe(); 23 | virtual ~RecoveryIe(); 24 | 25 | bool encodeRecoveryIe(MsgBuffer &buffer, 26 | RecoveryIeData const &data); 27 | bool decodeRecoveryIe(MsgBuffer &buffer, 28 | RecoveryIeData &data, Uint16 length); 29 | void displayRecoveryIe_v(RecoveryIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* RECOVERYIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/remoteUserIdIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef REMOTEUSERIDIE_H_ 14 | #define REMOTEUSERIDIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class RemoteUserIdIe: public GtpV2Ie { 21 | public: 22 | RemoteUserIdIe(); 23 | virtual ~RemoteUserIdIe(); 24 | 25 | bool encodeRemoteUserIdIe(MsgBuffer &buffer, 26 | RemoteUserIdIeData const &data); 27 | bool decodeRemoteUserIdIe(MsgBuffer &buffer, 28 | RemoteUserIdIeData &data, Uint16 length); 29 | void displayRemoteUserIdIe_v(RemoteUserIdIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* REMOTEUSERIDIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/selectionModeIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef SELECTIONMODEIE_H_ 14 | #define SELECTIONMODEIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class SelectionModeIe: public GtpV2Ie { 21 | public: 22 | SelectionModeIe(); 23 | virtual ~SelectionModeIe(); 24 | 25 | bool encodeSelectionModeIe(MsgBuffer &buffer, 26 | SelectionModeIeData const &data); 27 | bool decodeSelectionModeIe(MsgBuffer &buffer, 28 | SelectionModeIeData &data, Uint16 length); 29 | void displaySelectionModeIe_v(SelectionModeIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* SELECTIONMODEIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/sequenceNumberIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef SEQUENCENUMBERIE_H_ 14 | #define SEQUENCENUMBERIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class SequenceNumberIe: public GtpV2Ie { 21 | public: 22 | SequenceNumberIe(); 23 | virtual ~SequenceNumberIe(); 24 | 25 | bool encodeSequenceNumberIe(MsgBuffer &buffer, 26 | SequenceNumberIeData const &data); 27 | bool decodeSequenceNumberIe(MsgBuffer &buffer, 28 | SequenceNumberIeData &data, Uint16 length); 29 | void displaySequenceNumberIe_v(SequenceNumberIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* SEQUENCENUMBERIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/servingNetworkIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef SERVINGNETWORKIE_H_ 14 | #define SERVINGNETWORKIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class ServingNetworkIe: public GtpV2Ie { 21 | public: 22 | ServingNetworkIe(); 23 | virtual ~ServingNetworkIe(); 24 | 25 | bool encodeServingNetworkIe(MsgBuffer &buffer, 26 | ServingNetworkIeData const &data); 27 | bool decodeServingNetworkIe(MsgBuffer &buffer, 28 | ServingNetworkIeData &data, Uint16 length); 29 | void displayServingNetworkIe_v(ServingNetworkIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* SERVINGNETWORKIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/throttlingIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef THROTTLINGIE_H_ 14 | #define THROTTLINGIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class ThrottlingIe: public GtpV2Ie { 21 | public: 22 | ThrottlingIe(); 23 | virtual ~ThrottlingIe(); 24 | 25 | bool encodeThrottlingIe(MsgBuffer &buffer, 26 | ThrottlingIeData const &data); 27 | bool decodeThrottlingIe(MsgBuffer &buffer, 28 | ThrottlingIeData &data, Uint16 length); 29 | void displayThrottlingIe_v(ThrottlingIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* THROTTLINGIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/traceInformationIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef TRACEINFORMATIONIE_H_ 14 | #define TRACEINFORMATIONIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class TraceInformationIe: public GtpV2Ie { 21 | public: 22 | TraceInformationIe(); 23 | virtual ~TraceInformationIe(); 24 | 25 | bool encodeTraceInformationIe(MsgBuffer &buffer, 26 | TraceInformationIeData const &data); 27 | bool decodeTraceInformationIe(MsgBuffer &buffer, 28 | TraceInformationIeData &data, Uint16 length); 29 | void displayTraceInformationIe_v(TraceInformationIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* TRACEINFORMATIONIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/twanIdentifierIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef TWANIDENTIFIERIE_H_ 14 | #define TWANIDENTIFIERIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class TwanIdentifierIe: public GtpV2Ie { 21 | public: 22 | TwanIdentifierIe(); 23 | virtual ~TwanIdentifierIe(); 24 | 25 | bool encodeTwanIdentifierIe(MsgBuffer &buffer, 26 | TwanIdentifierIeData const &data); 27 | bool decodeTwanIdentifierIe(MsgBuffer &buffer, 28 | TwanIdentifierIeData &data, Uint16 length); 29 | void displayTwanIdentifierIe_v(TwanIdentifierIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* TWANIDENTIFIERIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/twmiIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef TWMIIE_H_ 14 | #define TWMIIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class TwmiIe: public GtpV2Ie { 21 | public: 22 | TwmiIe(); 23 | virtual ~TwmiIe(); 24 | 25 | bool encodeTwmiIe(MsgBuffer &buffer, 26 | TwmiIeData const &data); 27 | bool decodeTwmiIe(MsgBuffer &buffer, 28 | TwmiIeData &data, Uint16 length); 29 | void displayTwmiIe_v(TwmiIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* TWMIIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/uciIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef UCIIE_H_ 14 | #define UCIIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class UciIe: public GtpV2Ie { 21 | public: 22 | UciIe(); 23 | virtual ~UciIe(); 24 | 25 | bool encodeUciIe(MsgBuffer &buffer, 26 | UciIeData const &data); 27 | bool decodeUciIe(MsgBuffer &buffer, 28 | UciIeData &data, Uint16 length); 29 | void displayUciIe_v(UciIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* UCIIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/ueTimeZoneIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef UETIMEZONEIE_H_ 14 | #define UETIMEZONEIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class UeTimeZoneIe: public GtpV2Ie { 21 | public: 22 | UeTimeZoneIe(); 23 | virtual ~UeTimeZoneIe(); 24 | 25 | bool encodeUeTimeZoneIe(MsgBuffer &buffer, 26 | UeTimeZoneIeData const &data); 27 | bool decodeUeTimeZoneIe(MsgBuffer &buffer, 28 | UeTimeZoneIeData &data, Uint16 length); 29 | void displayUeTimeZoneIe_v(UeTimeZoneIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* UETIMEZONEIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/uliIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef ULIIE_H_ 14 | #define ULIIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class UliIe: public GtpV2Ie { 21 | public: 22 | UliIe(); 23 | virtual ~UliIe(); 24 | 25 | bool encodeUliIe(MsgBuffer &buffer, 26 | UliIeData const &data); 27 | bool decodeUliIe(MsgBuffer &buffer, 28 | UliIeData &data, Uint16 length); 29 | void displayUliIe_v(UliIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* ULIIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/uliTimestampIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | /****************************************************************************** 7 | * 8 | * This is an auto generated file. 9 | * Please do not edit this file. 10 | * All edits to be made through template source file 11 | * 12 | ******************************************************************************/ 13 | #ifndef ULITIMESTAMPIE_H_ 14 | #define ULITIMESTAMPIE_H_ 15 | 16 | #include "manual/gtpV2Ie.h" 17 | 18 | 19 | 20 | class UliTimestampIe: public GtpV2Ie { 21 | public: 22 | UliTimestampIe(); 23 | virtual ~UliTimestampIe(); 24 | 25 | bool encodeUliTimestampIe(MsgBuffer &buffer, 26 | UliTimestampIeData const &data); 27 | bool decodeUliTimestampIe(MsgBuffer &buffer, 28 | UliTimestampIeData &data, Uint16 length); 29 | void displayUliTimestampIe_v(UliTimestampIeData const &data, 30 | Debug &stream); 31 | }; 32 | 33 | #endif /* ULITIMESTAMPIE_H_ */ 34 | -------------------------------------------------------------------------------- /src/gtpV2Codec/msgClasses/manual/gtpV2Message.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2019-present Infosys Limited   3 |     4 | SPDX-License-Identifier: Apache-2.0   5 |    6 | */ 7 | 8 | 9 | 10 | #ifndef GTPV2MESSAGE_H_ 11 | #define GTPV2MESSAGE_H_ 12 | 13 | #include "basicTypes.h" 14 | #include "msgBuffer.h" 15 | #include "../../../gtpV2Codec/msgClasses/gtpV2MsgDataTypes.h" 16 | 17 | class GtpV2Message { 18 | public: 19 | GtpV2Message(); 20 | virtual ~GtpV2Message(); 21 | static void encodeHeader(MsgBuffer& buffer, GtpV2MessageHeader& msgHeader); 22 | static bool decodeHeader(MsgBuffer& buffer, GtpV2MessageHeader& msgHeader); 23 | 24 | protected: 25 | Uint8 msgType; 26 | }; 27 | 28 | #endif /* GTPV2MESSAGE_H_ */ 29 | 30 | -------------------------------------------------------------------------------- /src/mme-app/conf/mme.json.license: -------------------------------------------------------------------------------- 1 | Copyright 2019-present Open Networking Foundation 2 | SPDX-License-Identifier: Apache-2.0 3 | -------------------------------------------------------------------------------- /src/mme-app/mmeappResthandler.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | 8 | #include "mmeappResthandler.h" 9 | #include "rapidjson/error/en.h" 10 | #include 11 | 12 | void RestHandler::onRequest(const Pistache::Http::Request& request, Pistache::Http::ResponseWriter response) 13 | { 14 | std::cout<<"Received message on http interface\n"; 15 | std::cout << request.resource() << std::endl; 16 | std::cout << request.method() << std::endl; 17 | std::cout << request.body() << std::endl; 18 | std::stringstream ss; 19 | ss << "Unrecognized resource [" << request.resource() << "]"; 20 | response.send(Pistache::Http::Code::Bad_Request, ss.str() ); 21 | } 22 | -------------------------------------------------------------------------------- /src/mme-app/run.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | # Copyright 2019-present Open Networking Foundation 3 | # 4 | # Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd. 5 | # Copyright (c) 2017 Intel Corporation 6 | # Copyright (c) 2019, Infosys Ltd. 7 | # 8 | # SPDX-License-Identifier: Apache-2.0 9 | # 10 | 11 | export LD_LIBRARY_PATH=./lib:/usr/local/lib:/usr/local/ssl/lib 12 | echo "Start MME application" 13 | ./bin/mme-app & 14 | sleep 1 15 | ./bin/s1ap-app & 16 | sleep 1 17 | ./bin/s6a-app > /dev/null & 18 | sleep 1 19 | ./bin/s11-app > /dev/null & 20 | -------------------------------------------------------------------------------- /src/mme-app/stop.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | # Copyright 2019-present Open Networking Foundation 3 | 4 | # 5 | # Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd. 6 | # Copyright (c) 2017 Intel Corporation 7 | # Copyright (c) 2019, Infosys Ltd. 8 | # 9 | # SPDX-License-Identifier: Apache-2.0 10 | # 11 | 12 | echo "Killing MME application" 13 | killall -9 mme-app s1ap-app s11-app s6a-app 14 | -------------------------------------------------------------------------------- /src/mme-app/utils/defaultMmeProcedureCtxt.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | #include 8 | #include 9 | 10 | using namespace mme; 11 | 12 | DefaultMmeProcedureCtxt::DefaultMmeProcedureCtxt() 13 | { 14 | setNextState(DefaultMmeState::Instance()); 15 | setCtxtType(defaultMmeProcedure_c); 16 | } 17 | 18 | DefaultMmeProcedureCtxt::~DefaultMmeProcedureCtxt() 19 | { 20 | 21 | } 22 | 23 | DefaultMmeProcedureCtxt* DefaultMmeProcedureCtxt::Instance() 24 | { 25 | static DefaultMmeProcedureCtxt defaultMmeProcedureCtxt; 26 | return &defaultMmeProcedureCtxt; 27 | } 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/mmeGrpcClient/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2019-present Infosys Limited 3 | # 4 | # SPDX-License-Identifier: Apache-2.0 5 | # 6 | 7 | include ../../Makefile.common 8 | 9 | CFLAGS := -Wall -I$(GRPC_ROOT)/include -I$(GRPC_ROOT)/third_party/protobuf/src -std=c++11 10 | LDFLAGS := -L$(GRPC_ROOT)/libs/opt -lgrpc++ -lgrpc -lgpr -L$(GRPC_ROOT)/libs/opt/protobuf -lprotobuf 11 | 12 | SRCDIR := . 13 | SRCS := ./mmeGrpcClient.cpp 14 | OBJS := $(patsubst $(SRCDIR)/%,$(OBJDIR)/mmeGrpcClient/%,$(SRCS:.cpp=.o)) 15 | 16 | TARGET := $(BINDIR)/mme-grpc-client 17 | 18 | all: $(TARGET) 19 | 20 | $(TARGET) : $(OBJS) 21 | @mkdir -p $(BINDIR) 22 | g++ -o $(TARGET) $(OBJS) $(LIB_PATH) -lmmeGrpcProtoBuf $(LDFLAGS) 23 | 24 | $(OBJS) : $(OBJDIR)/mmeGrpcClient/%.o : $(SRCDIR)/%.cpp 25 | -@mkdir -p $(OBJDIR)/mmeGrpcClient 26 | g++ $(CFLAGS) $(INC_DIRS) -c -o $@ $< 27 | 28 | install : 29 | -@mkdir -p $(TARGET_DIR)/bin 30 | -@cp $(TARGET) $(TARGET_DIR)/bin 31 | 32 | clean: 33 | -@rm -rf $(OBJDIR)/mmeGrpcClient $(TARGET) 34 | -------------------------------------------------------------------------------- /src/s11/conf/s11.json: -------------------------------------------------------------------------------- 1 | { 2 | "mme": { 3 | "ip_addr": "192.168.1.55", 4 | "name": "vmmestandalone", 5 | "group_id": 1, 6 | "code": 1, 7 | "__comment__": "Here is comment", 8 | "mcc": { 9 | "dig1": 2, 10 | "dig2": 0, 11 | "dig3": 8 12 | }, 13 | "mnc": { 14 | "dig1": 0, 15 | "dig2": 1, 16 | "dig3": -1 17 | } 18 | }, 19 | "s1ap": { 20 | "s1ap_local_addr": "192.168.1.55", 21 | "sctp_port": 36412, 22 | "egtp_default_hostname": "sutlej.ccin.ccpu.com" 23 | }, 24 | "s11": { 25 | "egtp_local_addr": "192.168.1.55", 26 | "egtp_default_port": 2123, 27 | "sgw_addr": "127.0.0.1", 28 | "pgw_addr": "192.168.1.105" 29 | }, 30 | "s6a": { 31 | "host_type": "freediameter", 32 | "host": "hss.openair4G.eur", 33 | "realm": "openair4G.eur" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/s11/conf/s11.json.license: -------------------------------------------------------------------------------- 1 | Copyright 2019-present Open Networking Foundation 2 | SPDX-License-Identifier: Apache-2.0 3 | -------------------------------------------------------------------------------- /src/s11/cpp_utils/gtp_cpp_wrapper.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 2020-present Open Networking Foundation 2 | // 3 | // SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0 4 | 5 | #include "gtp_tables.h" 6 | static gtpTables *table = nullptr; 7 | 8 | extern "C" 9 | { 10 | #include "gtp_cpp_wrapper.h" 11 | #include "log.h" 12 | 13 | void init_cpp_gtp_tables(void) 14 | { 15 | table = new gtpTables(); 16 | } 17 | 18 | int add_gtp_transaction(uint32_t msg_seq, uint32_t ue_index) 19 | { 20 | log_msg(LOG_DEBUG, "Seq %d, Index - %d ",msg_seq, ue_index); 21 | return table->addSeqKey(msg_seq, ue_index); 22 | } 23 | 24 | int find_gtp_transaction(uint32_t msg_seq) 25 | { 26 | log_msg(LOG_DEBUG,"Seq %d ",msg_seq); 27 | return table->findUeIdxWithSeq(msg_seq); 28 | } 29 | 30 | int delete_gtp_transaction(uint32_t msg_seq) 31 | { 32 | return table->delSeqKey(msg_seq); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/s11/cpp_utils/gtp_cpp_wrapper.h: -------------------------------------------------------------------------------- 1 | // Copyright 2020-present Open Networking Foundation 2 | // 3 | // SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0 4 | 5 | #ifndef __S11__CPP_WRAPPER__H 6 | #define __S11__CPP_WRAPPER__H 7 | void init_cpp_gtp_tables(void); 8 | int add_gtp_transaction(uint32_t msg_seq, uint32_t ue_index); 9 | int find_gtp_transaction(uint32_t msg_seq); 10 | int delete_gtp_transaction(uint32_t msg_seq); 11 | #endif 12 | -------------------------------------------------------------------------------- /src/s11/cpp_utils/gtp_tables.h: -------------------------------------------------------------------------------- 1 | // Copyright 2020-present Open Networking Foundation 2 | // 3 | // SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0 4 | 5 | #ifndef __GTP_TABLES_H__ 6 | #define __GTP_TABLES_H__ 7 | #include 8 | #include 9 | #include 10 | 11 | class gtpTables 12 | { 13 | public: 14 | gtpTables() 15 | { 16 | } 17 | ~gtpTables() 18 | { 19 | } 20 | int addSeqKey( uint32_t key, uint32_t ue_index); 21 | int delSeqKey( uint32_t key ); 22 | int findUeIdxWithSeq( uint32_t key); 23 | std::map seq_ue_idx_map; 24 | std::mutex seq_ueidx_map_mutex; 25 | }; 26 | #endif 27 | -------------------------------------------------------------------------------- /src/s11/gtpv2c.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd. 4 | * Copyright (c) 2017 Intel Corporation 5 | * 6 | * SPDX-License-Identifier: Apache-2.0 7 | */ 8 | 9 | #include 10 | #include "gtpv2c.h" 11 | 12 | void 13 | set_gtpv2c_header(struct gtpv2c_header *gtpv2c_tx, uint8_t type, uint32_t teid, 14 | uint32_t seq) 15 | { 16 | 17 | gtpv2c_tx->gtp.message_type = type; 18 | 19 | gtpv2c_tx->gtp.version = GTP_VERSION_GTPV2C; 20 | gtpv2c_tx->gtp.piggyback = 0; 21 | gtpv2c_tx->gtp.teidFlg = 1; 22 | gtpv2c_tx->gtp.spare = 0; 23 | 24 | gtpv2c_tx->teid.has_teid.teid = htonl(teid); 25 | gtpv2c_tx->teid.has_teid.seq = htonl(seq) >> 8; 26 | gtpv2c_tx->teid.has_teid.spare = 0; 27 | 28 | gtpv2c_tx->gtp.len = htons(8); 29 | 30 | return; 31 | } 32 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asn1c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/src/s1ap/asn1c/asn1c -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/BPLMNs.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-IEs" 4 | * found in "./asn1c/S1AP-IEs.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _BPLMNs_H_ 9 | #define _BPLMNs_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "PLMNidentity.h" 16 | #include 17 | #include 18 | 19 | #ifdef __cplusplus 20 | extern "C" { 21 | #endif 22 | 23 | /* BPLMNs */ 24 | typedef struct BPLMNs { 25 | A_SEQUENCE_OF(PLMNidentity_t) list; 26 | 27 | /* Context for parsing across buffer boundaries */ 28 | asn_struct_ctx_t _asn_ctx; 29 | } BPLMNs_t; 30 | 31 | /* Implementation */ 32 | extern asn_TYPE_descriptor_t asn_DEF_BPLMNs; 33 | extern asn_SET_OF_specifics_t asn_SPC_BPLMNs_specs_1; 34 | extern asn_TYPE_member_t asn_MBR_BPLMNs_1[1]; 35 | extern asn_per_constraints_t asn_PER_type_BPLMNs_constr_1; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _BPLMNs_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/CellTrafficTrace.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _CellTrafficTrace_H_ 9 | #define _CellTrafficTrace_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* CellTrafficTrace */ 23 | typedef struct CellTrafficTrace { 24 | ProtocolIE_Container_129P57_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } CellTrafficTrace_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_CellTrafficTrace; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _CellTrafficTrace_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/DeactivateTrace.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _DeactivateTrace_H_ 9 | #define _DeactivateTrace_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* DeactivateTrace */ 23 | typedef struct DeactivateTrace { 24 | ProtocolIE_Container_129P56_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } DeactivateTrace_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_DeactivateTrace; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _DeactivateTrace_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/DownlinkNASTransport.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _DownlinkNASTransport_H_ 9 | #define _DownlinkNASTransport_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* DownlinkNASTransport */ 23 | typedef struct DownlinkNASTransport { 24 | ProtocolIE_Container_129P31_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } DownlinkNASTransport_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_DownlinkNASTransport; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _DownlinkNASTransport_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/E-RAB-IE-ContainerPairList.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _E_RAB_IE_ContainerPairList_H_ 9 | #define _E_RAB_IE_ContainerPairList_H_ 10 | 11 | 12 | #include 13 | 14 | #ifdef __cplusplus 15 | extern "C" { 16 | #endif 17 | 18 | #ifdef __cplusplus 19 | } 20 | #endif 21 | 22 | #endif /* _E_RAB_IE_ContainerPairList_H_ */ 23 | #include 24 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/E-RABModifyRequest.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _E_RABModifyRequest_H_ 9 | #define _E_RABModifyRequest_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* E-RABModifyRequest */ 23 | typedef struct E_RABModifyRequest { 24 | ProtocolIE_Container_129P14_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } E_RABModifyRequest_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_E_RABModifyRequest; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _E_RABModifyRequest_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/E-RABModifyResponse.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _E_RABModifyResponse_H_ 9 | #define _E_RABModifyResponse_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* E-RABModifyResponse */ 23 | typedef struct E_RABModifyResponse { 24 | ProtocolIE_Container_129P15_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } E_RABModifyResponse_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_E_RABModifyResponse; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _E_RABModifyResponse_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/E-RABReleaseCommand.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _E_RABReleaseCommand_H_ 9 | #define _E_RABReleaseCommand_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* E-RABReleaseCommand */ 23 | typedef struct E_RABReleaseCommand { 24 | ProtocolIE_Container_129P16_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } E_RABReleaseCommand_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_E_RABReleaseCommand; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _E_RABReleaseCommand_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/E-RABReleaseIndication.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _E_RABReleaseIndication_H_ 9 | #define _E_RABReleaseIndication_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* E-RABReleaseIndication */ 23 | typedef struct E_RABReleaseIndication { 24 | ProtocolIE_Container_129P18_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } E_RABReleaseIndication_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_E_RABReleaseIndication; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _E_RABReleaseIndication_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/E-RABReleaseResponse.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _E_RABReleaseResponse_H_ 9 | #define _E_RABReleaseResponse_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* E-RABReleaseResponse */ 23 | typedef struct E_RABReleaseResponse { 24 | ProtocolIE_Container_129P17_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } E_RABReleaseResponse_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_E_RABReleaseResponse; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _E_RABReleaseResponse_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/E-RABSetupRequest.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _E_RABSetupRequest_H_ 9 | #define _E_RABSetupRequest_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* E-RABSetupRequest */ 23 | typedef struct E_RABSetupRequest { 24 | ProtocolIE_Container_129P12_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } E_RABSetupRequest_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_E_RABSetupRequest; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _E_RABSetupRequest_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/E-RABSetupResponse.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _E_RABSetupResponse_H_ 9 | #define _E_RABSetupResponse_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* E-RABSetupResponse */ 23 | typedef struct E_RABSetupResponse { 24 | ProtocolIE_Container_129P13_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } E_RABSetupResponse_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_E_RABSetupResponse; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _E_RABSetupResponse_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/ENBConfigurationUpdate.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _ENBConfigurationUpdate_H_ 9 | #define _ENBConfigurationUpdate_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* ENBConfigurationUpdate */ 23 | typedef struct ENBConfigurationUpdate { 24 | ProtocolIE_Container_129P43_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } ENBConfigurationUpdate_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_ENBConfigurationUpdate; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _ENBConfigurationUpdate_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/ENBStatusTransfer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _ENBStatusTransfer_H_ 9 | #define _ENBStatusTransfer_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* ENBStatusTransfer */ 23 | typedef struct ENBStatusTransfer { 24 | ProtocolIE_Container_129P52_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } ENBStatusTransfer_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_ENBStatusTransfer; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _ENBStatusTransfer_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/ENBX2TLAs.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-IEs" 4 | * found in "./asn1c/S1AP-IEs.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _ENBX2TLAs_H_ 9 | #define _ENBX2TLAs_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "TransportLayerAddress.h" 16 | #include 17 | #include 18 | 19 | #ifdef __cplusplus 20 | extern "C" { 21 | #endif 22 | 23 | /* ENBX2TLAs */ 24 | typedef struct ENBX2TLAs { 25 | A_SEQUENCE_OF(TransportLayerAddress_t) list; 26 | 27 | /* Context for parsing across buffer boundaries */ 28 | asn_struct_ctx_t _asn_ctx; 29 | } ENBX2TLAs_t; 30 | 31 | /* Implementation */ 32 | extern asn_TYPE_descriptor_t asn_DEF_ENBX2TLAs; 33 | extern asn_SET_OF_specifics_t asn_SPC_ENBX2TLAs_specs_1; 34 | extern asn_TYPE_member_t asn_MBR_ENBX2TLAs_1[1]; 35 | extern asn_per_constraints_t asn_PER_type_ENBX2TLAs_constr_1; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _ENBX2TLAs_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/EPLMNs.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-IEs" 4 | * found in "./asn1c/S1AP-IEs.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _EPLMNs_H_ 9 | #define _EPLMNs_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "PLMNidentity.h" 16 | #include 17 | #include 18 | 19 | #ifdef __cplusplus 20 | extern "C" { 21 | #endif 22 | 23 | /* EPLMNs */ 24 | typedef struct EPLMNs { 25 | A_SEQUENCE_OF(PLMNidentity_t) list; 26 | 27 | /* Context for parsing across buffer boundaries */ 28 | asn_struct_ctx_t _asn_ctx; 29 | } EPLMNs_t; 30 | 31 | /* Implementation */ 32 | extern asn_TYPE_descriptor_t asn_DEF_EPLMNs; 33 | extern asn_SET_OF_specifics_t asn_SPC_EPLMNs_specs_1; 34 | extern asn_TYPE_member_t asn_MBR_EPLMNs_1[1]; 35 | extern asn_per_constraints_t asn_PER_type_EPLMNs_constr_1; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _EPLMNs_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/ErrorIndication.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _ErrorIndication_H_ 9 | #define _ErrorIndication_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* ErrorIndication */ 23 | typedef struct ErrorIndication { 24 | ProtocolIE_Container_129P39_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } ErrorIndication_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_ErrorIndication; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _ErrorIndication_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/HandoverCancel.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _HandoverCancel_H_ 9 | #define _HandoverCancel_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* HandoverCancel */ 23 | typedef struct HandoverCancel { 24 | ProtocolIE_Container_129P10_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } HandoverCancel_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_HandoverCancel; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _HandoverCancel_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/HandoverCommand.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _HandoverCommand_H_ 9 | #define _HandoverCommand_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* HandoverCommand */ 23 | typedef struct HandoverCommand { 24 | ProtocolIE_Container_129P1_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } HandoverCommand_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_HandoverCommand; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _HandoverCommand_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/HandoverFailure.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _HandoverFailure_H_ 9 | #define _HandoverFailure_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* HandoverFailure */ 23 | typedef struct HandoverFailure { 24 | ProtocolIE_Container_129P5_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } HandoverFailure_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_HandoverFailure; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _HandoverFailure_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/HandoverNotify.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _HandoverNotify_H_ 9 | #define _HandoverNotify_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* HandoverNotify */ 23 | typedef struct HandoverNotify { 24 | ProtocolIE_Container_129P6_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } HandoverNotify_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_HandoverNotify; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _HandoverNotify_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/HandoverRequest.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _HandoverRequest_H_ 9 | #define _HandoverRequest_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* HandoverRequest */ 23 | typedef struct HandoverRequest { 24 | ProtocolIE_Container_129P3_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } HandoverRequest_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_HandoverRequest; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _HandoverRequest_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/HandoverRequired.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _HandoverRequired_H_ 9 | #define _HandoverRequired_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* HandoverRequired */ 23 | typedef struct HandoverRequired { 24 | ProtocolIE_Container_129P0_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } HandoverRequired_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_HandoverRequired; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _HandoverRequired_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/InitialUEMessage.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _InitialUEMessage_H_ 9 | #define _InitialUEMessage_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* InitialUEMessage */ 23 | typedef struct InitialUEMessage { 24 | ProtocolIE_Container_129P32_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } InitialUEMessage_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_InitialUEMessage; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _InitialUEMessage_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/KillRequest.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _KillRequest_H_ 9 | #define _KillRequest_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* KillRequest */ 23 | typedef struct KillRequest { 24 | ProtocolIE_Container_129P69_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } KillRequest_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_KillRequest; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _KillRequest_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/KillResponse.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _KillResponse_H_ 9 | #define _KillResponse_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* KillResponse */ 23 | typedef struct KillResponse { 24 | ProtocolIE_Container_129P70_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } KillResponse_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_KillResponse; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _KillResponse_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/LocationReport.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _LocationReport_H_ 9 | #define _LocationReport_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* LocationReport */ 23 | typedef struct LocationReport { 24 | ProtocolIE_Container_129P60_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } LocationReport_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_LocationReport; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _LocationReport_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/MMEConfigurationUpdate.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _MMEConfigurationUpdate_H_ 9 | #define _MMEConfigurationUpdate_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* MMEConfigurationUpdate */ 23 | typedef struct MMEConfigurationUpdate { 24 | ProtocolIE_Container_129P46_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } MMEConfigurationUpdate_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_MMEConfigurationUpdate; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _MMEConfigurationUpdate_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/MMEStatusTransfer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _MMEStatusTransfer_H_ 9 | #define _MMEStatusTransfer_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* MMEStatusTransfer */ 23 | typedef struct MMEStatusTransfer { 24 | ProtocolIE_Container_129P53_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } MMEStatusTransfer_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_MMEStatusTransfer; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _MMEStatusTransfer_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/Makefile.am.asn1convert: -------------------------------------------------------------------------------- 1 | include Makefile.am.libasncodec 2 | 3 | bin_PROGRAMS += asn1convert 4 | asn1convert_CFLAGS = $(ASN_MODULE_CFLAGS) -DPDU=S1AP_PDU 5 | asn1convert_CPPFLAGS = -I$(top_srcdir)/ 6 | asn1convert_LDADD = libasncodec.la 7 | asn1convert_SOURCES = \ 8 | converter-example.c 9 | regen: regenerate-from-asn1-source 10 | 11 | regenerate-from-asn1-source: 12 | asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU ./asn1c/S1AP-CommonDataTypes.asn ./asn1c/S1AP-Constants.asn ./asn1c/S1AP-Containers.asn ./asn1c/S1AP-IEs.asn ./asn1c/S1AP-PDU-Contents.asn ./asn1c/S1AP-PDU-Descriptions.asn 13 | 14 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/NASDeliveryIndication.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _NASDeliveryIndication_H_ 9 | #define _NASDeliveryIndication_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* NASDeliveryIndication */ 23 | typedef struct NASDeliveryIndication { 24 | ProtocolIE_Container_129P36_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } NASDeliveryIndication_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_NASDeliveryIndication; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _NASDeliveryIndication_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/OverloadStart.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _OverloadStart_H_ 9 | #define _OverloadStart_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* OverloadStart */ 23 | typedef struct OverloadStart { 24 | ProtocolIE_Container_129P61_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } OverloadStart_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_OverloadStart; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _OverloadStart_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/OverloadStop.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _OverloadStop_H_ 9 | #define _OverloadStop_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* OverloadStop */ 23 | typedef struct OverloadStop { 24 | ProtocolIE_Container_129P62_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } OverloadStop_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_OverloadStop; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _OverloadStop_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/PWSFailureIndication.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _PWSFailureIndication_H_ 9 | #define _PWSFailureIndication_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* PWSFailureIndication */ 23 | typedef struct PWSFailureIndication { 24 | ProtocolIE_Container_129P72_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } PWSFailureIndication_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_PWSFailureIndication; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _PWSFailureIndication_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/PWSRestartIndication.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _PWSRestartIndication_H_ 9 | #define _PWSRestartIndication_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* PWSRestartIndication */ 23 | typedef struct PWSRestartIndication { 24 | ProtocolIE_Container_129P71_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } PWSRestartIndication_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_PWSRestartIndication; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _PWSRestartIndication_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/Paging.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _Paging_H_ 9 | #define _Paging_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* Paging */ 23 | typedef struct Paging { 24 | ProtocolIE_Container_129P22_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } Paging_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_Paging; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _Paging_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/PathSwitchRequest.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _PathSwitchRequest_H_ 9 | #define _PathSwitchRequest_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* PathSwitchRequest */ 23 | typedef struct PathSwitchRequest { 24 | ProtocolIE_Container_129P7_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } PathSwitchRequest_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_PathSwitchRequest; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _PathSwitchRequest_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/PrivateMessage.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _PrivateMessage_H_ 9 | #define _PrivateMessage_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "PrivateIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* PrivateMessage */ 23 | typedef struct PrivateMessage { 24 | PrivateIE_Container_196P0_t privateIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } PrivateMessage_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_PrivateMessage; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _PrivateMessage_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/ProtocolError-IE-ContainerList.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _ProtocolError_IE_ContainerList_H_ 9 | #define _ProtocolError_IE_ContainerList_H_ 10 | 11 | 12 | #include 13 | 14 | #ifdef __cplusplus 15 | extern "C" { 16 | #endif 17 | 18 | #ifdef __cplusplus 19 | } 20 | #endif 21 | 22 | #endif /* _ProtocolError_IE_ContainerList_H_ */ 23 | #include 24 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/ProtocolIE-ContainerPair.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-Containers" 4 | * found in "./asn1c/S1AP-Containers.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _ProtocolIE_ContainerPair_H_ 9 | #define _ProtocolIE_ContainerPair_H_ 10 | 11 | 12 | #include 13 | 14 | #ifdef __cplusplus 15 | extern "C" { 16 | #endif 17 | 18 | #ifdef __cplusplus 19 | } 20 | #endif 21 | 22 | #endif /* _ProtocolIE_ContainerPair_H_ */ 23 | #include 24 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/ProtocolIE-ContainerPairList.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-Containers" 4 | * found in "./asn1c/S1AP-Containers.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _ProtocolIE_ContainerPairList_H_ 9 | #define _ProtocolIE_ContainerPairList_H_ 10 | 11 | 12 | #include 13 | 14 | #ifdef __cplusplus 15 | extern "C" { 16 | #endif 17 | 18 | #ifdef __cplusplus 19 | } 20 | #endif 21 | 22 | #endif /* _ProtocolIE_ContainerPairList_H_ */ 23 | #include 24 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/ProtocolIE-FieldPair.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-Containers" 4 | * found in "./asn1c/S1AP-Containers.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _ProtocolIE_FieldPair_H_ 9 | #define _ProtocolIE_FieldPair_H_ 10 | 11 | 12 | #include 13 | 14 | #ifdef __cplusplus 15 | extern "C" { 16 | #endif 17 | 18 | #ifdef __cplusplus 19 | } 20 | #endif 21 | 22 | #endif /* _ProtocolIE_FieldPair_H_ */ 23 | #include 24 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/RerouteNASRequest.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _RerouteNASRequest_H_ 9 | #define _RerouteNASRequest_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* RerouteNASRequest */ 23 | typedef struct RerouteNASRequest { 24 | ProtocolIE_Container_129P35_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } RerouteNASRequest_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_RerouteNASRequest; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _RerouteNASRequest_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/Reset.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _Reset_H_ 9 | #define _Reset_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* Reset */ 23 | typedef struct Reset { 24 | ProtocolIE_Container_129P37_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } Reset_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_Reset; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _Reset_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/ResetAcknowledge.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _ResetAcknowledge_H_ 9 | #define _ResetAcknowledge_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* ResetAcknowledge */ 23 | typedef struct ResetAcknowledge { 24 | ProtocolIE_Container_129P38_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } ResetAcknowledge_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_ResetAcknowledge; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _ResetAcknowledge_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/RetrieveUEInformation.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _RetrieveUEInformation_H_ 9 | #define _RetrieveUEInformation_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* RetrieveUEInformation */ 23 | typedef struct RetrieveUEInformation { 24 | ProtocolIE_Container_129P87_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } RetrieveUEInformation_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_RetrieveUEInformation; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _RetrieveUEInformation_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/S1SetupFailure.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _S1SetupFailure_H_ 9 | #define _S1SetupFailure_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* S1SetupFailure */ 23 | typedef struct S1SetupFailure { 24 | ProtocolIE_Container_129P42_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } S1SetupFailure_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_S1SetupFailure; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _S1SetupFailure_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/S1SetupRequest.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _S1SetupRequest_H_ 9 | #define _S1SetupRequest_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* S1SetupRequest */ 23 | typedef struct S1SetupRequest { 24 | ProtocolIE_Container_129P40_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } S1SetupRequest_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_S1SetupRequest; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _S1SetupRequest_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/S1SetupResponse.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _S1SetupResponse_H_ 9 | #define _S1SetupResponse_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* S1SetupResponse */ 23 | typedef struct S1SetupResponse { 24 | ProtocolIE_Container_129P41_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } S1SetupResponse_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_S1SetupResponse; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _S1SetupResponse_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/ServedMMECs.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-IEs" 4 | * found in "./asn1c/S1AP-IEs.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _ServedMMECs_H_ 9 | #define _ServedMMECs_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "MME-Code.h" 16 | #include 17 | #include 18 | 19 | #ifdef __cplusplus 20 | extern "C" { 21 | #endif 22 | 23 | /* ServedMMECs */ 24 | typedef struct ServedMMECs { 25 | A_SEQUENCE_OF(MME_Code_t) list; 26 | 27 | /* Context for parsing across buffer boundaries */ 28 | asn_struct_ctx_t _asn_ctx; 29 | } ServedMMECs_t; 30 | 31 | /* Implementation */ 32 | extern asn_TYPE_descriptor_t asn_DEF_ServedMMECs; 33 | extern asn_SET_OF_specifics_t asn_SPC_ServedMMECs_specs_1; 34 | extern asn_TYPE_member_t asn_MBR_ServedMMECs_1[1]; 35 | extern asn_per_constraints_t asn_PER_type_ServedMMECs_constr_1; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _ServedMMECs_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/TAListforMDT.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-IEs" 4 | * found in "./asn1c/S1AP-IEs.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _TAListforMDT_H_ 9 | #define _TAListforMDT_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "TAC.h" 16 | #include 17 | #include 18 | 19 | #ifdef __cplusplus 20 | extern "C" { 21 | #endif 22 | 23 | /* TAListforMDT */ 24 | typedef struct TAListforMDT { 25 | A_SEQUENCE_OF(TAC_t) list; 26 | 27 | /* Context for parsing across buffer boundaries */ 28 | asn_struct_ctx_t _asn_ctx; 29 | } TAListforMDT_t; 30 | 31 | /* Implementation */ 32 | extern asn_TYPE_descriptor_t asn_DEF_TAListforMDT; 33 | extern asn_SET_OF_specifics_t asn_SPC_TAListforMDT_specs_1; 34 | extern asn_TYPE_member_t asn_MBR_TAListforMDT_1[1]; 35 | extern asn_per_constraints_t asn_PER_type_TAListforMDT_constr_1; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _TAListforMDT_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/TAListforQMC.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-IEs" 4 | * found in "./asn1c/S1AP-IEs.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _TAListforQMC_H_ 9 | #define _TAListforQMC_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "TAC.h" 16 | #include 17 | #include 18 | 19 | #ifdef __cplusplus 20 | extern "C" { 21 | #endif 22 | 23 | /* TAListforQMC */ 24 | typedef struct TAListforQMC { 25 | A_SEQUENCE_OF(TAC_t) list; 26 | 27 | /* Context for parsing across buffer boundaries */ 28 | asn_struct_ctx_t _asn_ctx; 29 | } TAListforQMC_t; 30 | 31 | /* Implementation */ 32 | extern asn_TYPE_descriptor_t asn_DEF_TAListforQMC; 33 | extern asn_SET_OF_specifics_t asn_SPC_TAListforQMC_specs_1; 34 | extern asn_TYPE_member_t asn_MBR_TAListforQMC_1[1]; 35 | extern asn_per_constraints_t asn_PER_type_TAListforQMC_constr_1; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _TAListforQMC_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/TraceFailureIndication.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _TraceFailureIndication_H_ 9 | #define _TraceFailureIndication_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* TraceFailureIndication */ 23 | typedef struct TraceFailureIndication { 24 | ProtocolIE_Container_129P55_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } TraceFailureIndication_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_TraceFailureIndication; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _TraceFailureIndication_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/TraceStart.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _TraceStart_H_ 9 | #define _TraceStart_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* TraceStart */ 23 | typedef struct TraceStart { 24 | ProtocolIE_Container_129P54_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } TraceStart_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_TraceStart; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _TraceStart_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/UEContextReleaseCommand.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _UEContextReleaseCommand_H_ 9 | #define _UEContextReleaseCommand_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* UEContextReleaseCommand */ 23 | typedef struct UEContextReleaseCommand { 24 | ProtocolIE_Container_129P24_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } UEContextReleaseCommand_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_UEContextReleaseCommand; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _UEContextReleaseCommand_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/UEContextReleaseRequest.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _UEContextReleaseRequest_H_ 9 | #define _UEContextReleaseRequest_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* UEContextReleaseRequest */ 23 | typedef struct UEContextReleaseRequest { 24 | ProtocolIE_Container_129P23_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } UEContextReleaseRequest_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_UEContextReleaseRequest; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _UEContextReleaseRequest_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/UEContextResumeFailure.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _UEContextResumeFailure_H_ 9 | #define _UEContextResumeFailure_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* UEContextResumeFailure */ 23 | typedef struct UEContextResumeFailure { 24 | ProtocolIE_Container_129P85_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } UEContextResumeFailure_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_UEContextResumeFailure; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _UEContextResumeFailure_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/UEContextResumeRequest.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _UEContextResumeRequest_H_ 9 | #define _UEContextResumeRequest_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* UEContextResumeRequest */ 23 | typedef struct UEContextResumeRequest { 24 | ProtocolIE_Container_129P83_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } UEContextResumeRequest_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_UEContextResumeRequest; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _UEContextResumeRequest_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/UEContextResumeResponse.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _UEContextResumeResponse_H_ 9 | #define _UEContextResumeResponse_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* UEContextResumeResponse */ 23 | typedef struct UEContextResumeResponse { 24 | ProtocolIE_Container_129P84_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } UEContextResumeResponse_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_UEContextResumeResponse; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _UEContextResumeResponse_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/UEContextSuspendRequest.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _UEContextSuspendRequest_H_ 9 | #define _UEContextSuspendRequest_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* UEContextSuspendRequest */ 23 | typedef struct UEContextSuspendRequest { 24 | ProtocolIE_Container_129P81_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } UEContextSuspendRequest_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_UEContextSuspendRequest; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _UEContextSuspendRequest_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/UEInformationTransfer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _UEInformationTransfer_H_ 9 | #define _UEInformationTransfer_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* UEInformationTransfer */ 23 | typedef struct UEInformationTransfer { 24 | ProtocolIE_Container_129P88_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } UEInformationTransfer_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_UEInformationTransfer; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _UEInformationTransfer_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/UplinkNASTransport.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Generated by asn1c-0.9.29 (http://lionet.info/asn1c) 3 | * From ASN.1 module "S1AP-PDU-Contents" 4 | * found in "./asn1c/S1AP-PDU-Contents.asn" 5 | * `asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU` 6 | */ 7 | 8 | #ifndef _UplinkNASTransport_H_ 9 | #define _UplinkNASTransport_H_ 10 | 11 | 12 | #include 13 | 14 | /* Including external dependencies */ 15 | #include "ProtocolIE-Container.h" 16 | #include 17 | 18 | #ifdef __cplusplus 19 | extern "C" { 20 | #endif 21 | 22 | /* UplinkNASTransport */ 23 | typedef struct UplinkNASTransport { 24 | ProtocolIE_Container_129P33_t protocolIEs; 25 | /* 26 | * This type is extensible, 27 | * possible extensions are below. 28 | */ 29 | 30 | /* Context for parsing across buffer boundaries */ 31 | asn_struct_ctx_t _asn_ctx; 32 | } UplinkNASTransport_t; 33 | 34 | /* Implementation */ 35 | extern asn_TYPE_descriptor_t asn_DEF_UplinkNASTransport; 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif /* _UplinkNASTransport_H_ */ 42 | #include 43 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/asn1c/S1AP-CommonDataTypes.asn: -------------------------------------------------------------------------------- 1 | -- ************************************************************** 2 | -- 3 | -- Coommon definitions 4 | -- 5 | -- ************************************************************** 6 | 7 | S1AP-CommonDataTypes { 8 | itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) 9 | eps-Access (21) modules (3) s1ap (1) version1 (1) s1ap-CommonDataTypes (3) } 10 | 11 | DEFINITIONS AUTOMATIC TAGS ::= 12 | 13 | BEGIN 14 | 15 | Criticality ::= ENUMERATED { reject, ignore, notify } 16 | 17 | Presence ::= ENUMERATED { optional, conditional, mandatory } 18 | 19 | PrivateIE-ID ::= CHOICE { 20 | local INTEGER (0..65535), 21 | global OBJECT IDENTIFIER 22 | } 23 | 24 | ProcedureCode ::= INTEGER (0..255) 25 | 26 | ProtocolExtensionID ::= INTEGER (0..65535) 27 | 28 | ProtocolIE-ID ::= INTEGER (0..65535) 29 | 30 | TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome } 31 | 32 | END 33 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/converter-example.mk: -------------------------------------------------------------------------------- 1 | include Makefile.am.libasncodec 2 | 3 | LIBS += -lm 4 | CFLAGS += $(ASN_MODULE_CFLAGS) -DPDU=S1AP_PDU -I. 5 | ASN_LIBRARY ?= libasncodec.a 6 | ASN_PROGRAM ?= converter-example 7 | ASN_PROGRAM_SRCS ?= \ 8 | converter-example.c 9 | 10 | all: $(ASN_PROGRAM) 11 | 12 | $(ASN_PROGRAM): $(ASN_LIBRARY) $(ASN_PROGRAM_SRCS:.c=.o) 13 | $(CC) $(CFLAGS) $(CPPFLAGS) -o $(ASN_PROGRAM) $(ASN_PROGRAM_SRCS:.c=.o) $(LDFLAGS) $(ASN_LIBRARY) $(LIBS) 14 | 15 | $(ASN_LIBRARY): $(ASN_MODULE_SRCS:.c=.o) 16 | $(AR) rcs $@ $(ASN_MODULE_SRCS:.c=.o) 17 | 18 | .SUFFIXES: 19 | .SUFFIXES: .c .o 20 | 21 | .c.o: 22 | $(CC) $(CFLAGS) -o $@ -c $< 23 | 24 | clean: 25 | rm -f $(ASN_PROGRAM) $(ASN_LIBRARY) 26 | rm -f $(ASN_MODULE_SRCS:.c=.o) $(ASN_PROGRAM_SRCS:.c=.o) 27 | 28 | regen: regenerate-from-asn1-source 29 | 30 | regenerate-from-asn1-source: 31 | asn1c -fcompound-names -fno-include-deps -gen-PER -findirect-choice -pdu=S1AP-PDU ./asn1c/S1AP-CommonDataTypes.asn ./asn1c/S1AP-Constants.asn ./asn1c/S1AP-Containers.asn ./asn1c/S1AP-IEs.asn ./asn1c/S1AP-PDU-Contents.asn ./asn1c/S1AP-PDU-Descriptions.asn 32 | 33 | -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/libasncodec.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/src/s1ap/asn1c/asnGenFiles/libasncodec.a -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/s1ap-converter: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/src/s1ap/asn1c/asnGenFiles/s1ap-converter -------------------------------------------------------------------------------- /src/s1ap/conf/s1ap.json: -------------------------------------------------------------------------------- 1 | { 2 | "mme": { 3 | "ip_addr": "192.168.1.55", 4 | "name": "vmmestandalone", 5 | "group_id": 1, 6 | "code": 1, 7 | "__comment__": "Here is comment", 8 | "mcc": { 9 | "dig1": 2, 10 | "dig2": 0, 11 | "dig3": 8 12 | }, 13 | "mnc": { 14 | "dig1": 0, 15 | "dig2": 1, 16 | "dig3": -1 17 | }, 18 | "plmnlist": { 19 | "plmn1": "mcc=315,mnc=010", 20 | "plmn2": "mcc=208,mnc=01" 21 | } 22 | }, 23 | "s1ap": { 24 | "s1ap_local_addr": "192.168.1.55", 25 | "sctp_port": 36412, 26 | "egtp_default_hostname": "sutlej.ccin.ccpu.com" 27 | }, 28 | "s11": { 29 | "egtp_local_addr": "192.168.1.55", 30 | "egtp_default_port": 2123, 31 | "sgw_addr": "127.0.0.1", 32 | "pgw_addr": "192.168.1.105" 33 | }, 34 | "s6a": { 35 | "host_type": "freediameter", 36 | "host": "hss.openair4G.eur", 37 | "realm": "openair4G.eur" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/s1ap/conf/s1ap.json.bkup: -------------------------------------------------------------------------------- 1 | { 2 | "mme": { 3 | "ip_addr": "192.168.1.55", 4 | "name": "vmmestandalone", 5 | "group_id": 1, 6 | "code": 1, 7 | "__comment__": "Here is comment", 8 | "mcc": { 9 | "dig1": 2, 10 | "dig2": 0, 11 | "dig3": 8 12 | }, 13 | "mnc": { 14 | "dig1": 0, 15 | "dig2": 1, 16 | "dig3": -1 17 | } 18 | }, 19 | "s1ap": { 20 | "s1ap_local_addr": "127.0.0.1", 21 | "sctp_port": 36412, 22 | "enb_addr": "127.0.0.1", 23 | "enb_port": 5003, 24 | "egtp_default_hostname": "sutlej.ccin.ccpu.com" 25 | }, 26 | "s11": { 27 | "egtp_local_addr": "192.168.1.55", 28 | "egtp_default_port": 2123, 29 | "sgw_addr": "10.1.10.20", 30 | "pgw_addr": "192.168.1.105" 31 | }, 32 | "s6a": { 33 | "host_type": "freediameter", 34 | "host": "hss.openair4G.eur", 35 | "realm": "openair4G.eur" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/s1ap/conf/s1ap.json.license: -------------------------------------------------------------------------------- 1 | Copyright 2019-present Open Networking Foundation 2 | SPDX-License-Identifier: Apache-2.0 3 | -------------------------------------------------------------------------------- /src/s1ap/handlers/handover_command.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020-present, Infosys Ltd. 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | #include "log.h" 15 | #include "s1ap.h" 16 | #include "msgType.h" 17 | 18 | static int 19 | handover_command_processing(struct handover_command_Q_msg *g_ho_cmd) 20 | { 21 | log_msg(LOG_DEBUG,"Process Handover Command."); 22 | 23 | uint32_t length = 0; 24 | uint8_t *buffer = NULL; 25 | 26 | int ret = s1ap_mme_encode_handover_command(g_ho_cmd, &buffer, &length); 27 | if(ret == -1) 28 | { 29 | log_msg(LOG_ERROR, "Encoding Handover Command failed."); 30 | return E_FAIL; 31 | } 32 | 33 | send_sctp_msg( 34 | g_ho_cmd->src_enb_context_id, buffer, length, 1); 35 | 36 | log_msg(LOG_DEBUG, "HO Command sent. No. of bytes %d", length); 37 | if(buffer != NULL) { 38 | free(buffer); 39 | } 40 | 41 | return SUCCESS; 42 | } 43 | 44 | void* 45 | handover_command_handler(void *data) 46 | { 47 | handover_command_processing((struct handover_command_Q_msg *)data); 48 | return NULL; 49 | } 50 | -------------------------------------------------------------------------------- /src/s6a/conf/cacert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICmjCCAgOgAwIBAgIUNitxX3XfNYyyfpXI4ZyK9xIn19owDQYJKoZIhvcNAQEL 3 | BQAwXzEXMBUGA1UEAwwOY2EubG9jYWxkb21haW4xCzAJBgNVBAYTAkZSMQwwCgYD 4 | VQQIDANCZFIxDDAKBgNVBAcMA0FpeDELMAkGA1UECgwCZkQxDjAMBgNVBAsMBVRl 5 | c3RzMB4XDTE5MDkwMjEyMTAxNloXDTI5MDgzMDEyMTAxNlowXzEXMBUGA1UEAwwO 6 | Y2EubG9jYWxkb21haW4xCzAJBgNVBAYTAkZSMQwwCgYDVQQIDANCZFIxDDAKBgNV 7 | BAcMA0FpeDELMAkGA1UECgwCZkQxDjAMBgNVBAsMBVRlc3RzMIGfMA0GCSqGSIb3 8 | DQEBAQUAA4GNADCBiQKBgQCmsT/aecW48vqgLFE6k0+zwqqP/ni1NwUD95wlH8CA 9 | SqO2suSCsa9TEDqNUsmt3idbV/rDV9wq/7u6N2O7M97ALXbyTu+fkth3CgYapWls 10 | lQQseyb6TPhQkECJ0Z8CEkOzZrYAiXcfoo97Yd+VyXGSl8ISdGzH6ScAQ6ARTAmA 11 | 6QIDAQABo1MwUTAdBgNVHQ4EFgQU6NOJunvAFwrK9hWrIA/+4HhCjDMwHwYDVR0j 12 | BBgwFoAU6NOJunvAFwrK9hWrIA/+4HhCjDMwDwYDVR0TAQH/BAUwAwEB/zANBgkq 13 | hkiG9w0BAQsFAAOBgQA9l9FlhnVcKaS30Ac54MhmASuo4T+SejfqaHilrrpm5rXu 14 | 9zYrEGQbFA//l5Mw16e3/7MhAd9CXlA3pgKVuJ99UEpFM51FJLHD4/pmQzNS5DO1 15 | DaUFM8UzKf96hf9NFkQe1BjYwPqXyeUUZU8s+KF02jkiXwHvyQC6pF16wFxq0g== 16 | -----END CERTIFICATE----- 17 | -------------------------------------------------------------------------------- /src/s6a/conf/cakey.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKaxP9p5xbjy+qAs 3 | UTqTT7PCqo/+eLU3BQP3nCUfwIBKo7ay5IKxr1MQOo1Sya3eJ1tX+sNX3Cr/u7o3 4 | Y7sz3sAtdvJO75+S2HcKBhqlaWyVBCx7JvpM+FCQQInRnwISQ7NmtgCJdx+ij3th 5 | 35XJcZKXwhJ0bMfpJwBDoBFMCYDpAgMBAAECgYBU70G634tIpr3fOVWWRBM7Y/gm 6 | cKIuq78pe1QbcmdStzVd1R8sHL9Z0o4TDljm96gUGesS98SeQDn2M1zkuRRJAuWX 7 | I14zdDDYsU/OGWGhJ7D/ZdLTgcjBXaTE5IBgMVX4xL5Pm58xtEgDAIS6LWy5Vr3J 8 | mOJTMdhKaMIVmbtvUQJBANg1ZOzUN04NAiI3fLRC6Tjq5+jnsiW57ifegsW61//b 9 | OVP2E+d1ozXj+AbXf70W3czOvtrCRrrzzYBkAvVJJuUCQQDFXunyOQnwmfTW0Jd6 10 | Vy6lGn5oNB/4O2ijKrn/j9R483NIeXAaMwABPKgUpkotgwCCT8GbLz7fn+WAY3cx 11 | I+21AkBakXtWjcshAef751xwsnq54gUFllEU5p7xyo7jP1KOFgoctr89vRSCVZ2n 12 | WAxlbDe7PHvMbYdtdwWFm991WpBVAkACsT7DvR9zlsYOQB4w3wuV2PysczmUa0sM 13 | HsMWx2GAnOGPtYhf8x4m5irszS/p2wWgwXHEqipTZpz82V6A3xqZAkEAl2WQ1NDJ 14 | bTzurBV8O2j8jfBpOcqTCKddXxqcxwcMtvsW6ZhVjXhYqH8EImGQmiUzwa7Px+N5 15 | zN9PVE3it01Lyg== 16 | -----END PRIVATE KEY----- 17 | -------------------------------------------------------------------------------- /src/s6a/conf/demoCA/index.txt: -------------------------------------------------------------------------------- 1 | V 200901121016Z 01 unknown /C=FR/ST=BdR/O=fD/OU=Tests/CN=mme.localdomain 2 | -------------------------------------------------------------------------------- /src/s6a/conf/demoCA/index.txt.attr: -------------------------------------------------------------------------------- 1 | unique_subject = yes 2 | -------------------------------------------------------------------------------- /src/s6a/conf/demoCA/index.txt.old: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/Nucleus/8c0455035837ad97d5a55bd214d7ab7d35aebdf8/src/s6a/conf/demoCA/index.txt.old -------------------------------------------------------------------------------- /src/s6a/conf/demoCA/serial: -------------------------------------------------------------------------------- 1 | 02 2 | -------------------------------------------------------------------------------- /src/s6a/conf/demoCA/serial.old: -------------------------------------------------------------------------------- 1 | 01 2 | -------------------------------------------------------------------------------- /src/s6a/conf/make_certs.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | # Copyright 2019-present Open Networking Foundation 3 | 4 | #Copyright (c) 2017 Sprint 5 | # 6 | # SPDX-License-Identifier: Apache-2.0 7 | rm -rf demoCA 8 | mkdir demoCA 9 | echo 01 > demoCA/serial 10 | touch demoCA/index.txt 11 | 12 | HOST=$1 13 | DOMAIN=$2 14 | 15 | # CA self certificate 16 | openssl req -new -batch -x509 -days 3650 -nodes -newkey rsa:1024 -out cacert.pem -keyout cakey.pem -subj /CN=ca.localdomain/C=FR/ST=BdR/L=Aix/O=fD/OU=Tests 17 | 18 | # 19 | openssl genrsa -out $HOST.key.pem 1024 20 | openssl req -new -batch -out $HOST.csr.pem -key $HOST.key.pem -subj /CN=$HOST.$DOMAIN/C=FR/ST=BdR/L=Aix/O=fD/OU=Tests 21 | openssl ca -cert cacert.pem -keyfile cakey.pem -in $HOST.csr.pem -out $HOST.cert.pem -outdir . -batch 22 | 23 | -------------------------------------------------------------------------------- /src/s6a/conf/mme.csr.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE REQUEST----- 2 | MIIBoDCCAQkCAQAwYDEYMBYGA1UEAwwPbW1lLmxvY2FsZG9tYWluMQswCQYDVQQG 3 | EwJGUjEMMAoGA1UECAwDQmRSMQwwCgYDVQQHDANBaXgxCzAJBgNVBAoMAmZEMQ4w 4 | DAYDVQQLDAVUZXN0czCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAybG/HgzB 5 | bhNfWwo59EYQ9odwuUo0YwH8EsvrlN+9JJ5HWIuQp5c6kc9REfbSN865mNDGEZ1B 6 | oWsxEyncWE4kqWpddHYg6cuxIvnlmolvPwvCMa6fS3kv1sRCHFsVbdicYUmMFEDM 7 | iA73HiSXZS1dH/t9X7EZlTsIp+iYBhQwDMUCAwEAAaAAMA0GCSqGSIb3DQEBCwUA 8 | A4GBAFu/aD0qCfyMcLMv4uHo40LNupQaF6Zvgeb07cX3gttMOfK2OS9PF143dbXD 9 | iv2xvoh09w+XH372pBDbIhnoBsS6t6KLPd3sk108LpX/h7eds1bWE43ZSolhFZZ1 10 | 1gwu/vpHurgtyQfJgZyKNemjnIHgly7He7OaEXqewknJ+pvK 11 | -----END CERTIFICATE REQUEST----- 12 | -------------------------------------------------------------------------------- /src/s6a/conf/mme.key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXAIBAAKBgQDJsb8eDMFuE19bCjn0RhD2h3C5SjRjAfwSy+uU370knkdYi5Cn 3 | lzqRz1ER9tI3zrmY0MYRnUGhazETKdxYTiSpal10diDpy7Ei+eWaiW8/C8Ixrp9L 4 | eS/WxEIcWxVt2JxhSYwUQMyIDvceJJdlLV0f+31fsRmVOwin6JgGFDAMxQIDAQAB 5 | AoGAIrcFPhbT9C5Ba1oHP5QPt174d+vduGzPBi0zDxyzYWocvZDIBRBydEZKndzt 6 | sc1TBIpqjP2UHkRk3feGhWxtwqyQLUlzn3KajgzJjy/gMLicNi/oRtPi/olCQvZw 7 | 57K5pFHIn8E0RMCaDqirpRuwTOIfcsI1Pw/ndykDC2Q+8AECQQD456teQsq7EuLT 8 | HpY3hkqvDXh4VWptGLqhTvTQFo2hazZYDhjIn0k6wSeeMgnATMP7ZSTcSy043Nie 9 | Zxzvh74FAkEAz3GRUThWHjCSxr2qxzZJIfM1H89ax5nHQFgwD3Jj8isyrDSY1zkX 10 | 3VDZxswrsNg+iFkeG27gcpciEgn09fGPwQJAMjw3pwed+RG/u9JhiQVOj3QNi2PZ 11 | 3fjuud3ApTrYDOshhbYapGsZkYUoZNI+i5QyvctVHC0EDITuJ1IyUdm4rQJBAMjm 12 | pePQ+aY3SI7tNS3FZ0JX9gUenj5csdmhDrqHAECSkXqxXaxigLg4CxE6vr2AT99g 13 | 34WV9g1ETRzHQ9PE5IECQCiFVkVT/G4AHBKnm1/W+At76Ks4bWXPhh6TzQAse77T 14 | FmSRWdQL09qj2rOeArqc8Q5pOVLgc0YY0Ny9gMA+3/c= 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /src/s6a/conf/s6a.json: -------------------------------------------------------------------------------- 1 | { 2 | "mme": { 3 | "ip_addr": "192.168.1.55", 4 | "name": "vmmestandalone", 5 | "group_id": 1, 6 | "code": 1, 7 | "__comment__": "Here is comment", 8 | "mcc": { 9 | "dig1": 2, 10 | "dig2": 0, 11 | "dig3": 8 12 | }, 13 | "mnc": { 14 | "dig1": 0, 15 | "dig2": 1, 16 | "dig3": -1 17 | } 18 | }, 19 | "s1ap": { 20 | "s1ap_local_addr": "127.0.0.1", 21 | "sctp_port": 36412, 22 | "egtp_default_hostname": "sutlej.ccin.ccpu.com" 23 | }, 24 | "s11": { 25 | "egtp_local_addr": "192.168.1.55", 26 | "egtp_default_port": 2123, 27 | "sgw_addr": "127.0.0.1", 28 | "pgw_addr": "192.168.1.105" 29 | }, 30 | "s6a": { 31 | "hss_type": "freediameter", 32 | "host_name": "hss.openair4G.eur", 33 | "realm": "openair4G.eur" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/s6a/conf/s6a.json.license: -------------------------------------------------------------------------------- 1 | Copyright 2019-present Open Networking Foundation 2 | SPDX-License-Identifier: Apache-2.0 3 | -------------------------------------------------------------------------------- /src/s6a/conf/s6a_fd.conf.license: -------------------------------------------------------------------------------- 1 | Copyright 2019-present Open Networking Foundation 2 | SPDX-License-Identifier: Apache-2.0 3 | -------------------------------------------------------------------------------- /src/stateMachineFwk/permDataBlock.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2019, Infosys Ltd. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #include 18 | #include "permDataBlock.h" 19 | #include "log.h" 20 | 21 | using namespace std; 22 | namespace SM 23 | { 24 | PermDataBlock::PermDataBlock() 25 | :contextID(0) 26 | { 27 | } 28 | 29 | PermDataBlock::~PermDataBlock() 30 | { 31 | } 32 | 33 | void PermDataBlock::display() 34 | { 35 | // Display all data fields 36 | log_msg(LOG_DEBUG,"Context ID - %d ",contextID); 37 | } 38 | } 39 | 40 | --------------------------------------------------------------------------------