├── .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 ├── LICENSE ├── Makefile ├── Makefile.common ├── README.md ├── VERSION ├── build-config ├── include ├── cmn │ ├── basicTypes.h │ ├── dataGroupManager.h │ ├── debug.h │ ├── memPoolManager.h │ └── msgBuffer.h ├── common │ ├── 3gpp_24008.h │ ├── common_proc_info.h │ ├── ddn_info.h │ ├── defines.h │ ├── detach_stage1_info.h │ ├── detach_stage2_info.h │ ├── detach_stage3_info.h │ ├── err_codes.h │ ├── f8.h │ ├── f9.h │ ├── hss_message.h │ ├── ipc_api.h │ ├── json_data.h │ ├── log.h │ ├── message_queues.h │ ├── monitor_config.h │ ├── monitor_message.h │ ├── paging_info.h │ ├── s11_structs.h │ ├── s1ap_emm_message.h │ ├── s1ap_error.h │ ├── s1ap_mme_msg.h │ ├── s1ap_structs.h │ ├── sec.h │ ├── servicereq_info.h │ ├── snow_3g.h │ ├── stage1_info.h │ ├── stage1_s6a_msg.h │ ├── stage2_info.h │ ├── stage3_info.h │ ├── stage4_info.h │ ├── stage5_info.h │ ├── stage5_s11_info.h │ ├── stage6_info.h │ ├── stage7_info.h │ ├── stage8_info.h │ ├── stimer.h │ ├── structs.h │ ├── thread_pool.h │ ├── tpool_queue.h │ ├── unix_conn.h │ └── unix_sock.h ├── mme-app │ ├── hash.h │ ├── mme_app.h │ ├── monitor_subscriber.h │ └── ue_table.h ├── s11 │ ├── gtpv2c.h │ ├── gtpv2c_ie.h │ ├── s11.h │ └── s11_config.h ├── s1ap │ ├── contextManager │ │ ├── dataBlocks.h │ │ ├── enbContextManager.h │ │ ├── s1apContextWrapper.h │ │ ├── s1apContextWrapper_c.h │ │ └── s1apDataGroupManager.h │ ├── enb.h │ ├── main.h │ ├── options.h │ ├── s1ap.h │ ├── s1ap_config.h │ ├── s1ap_ie.h │ ├── s1ap_msg_codes.h │ └── sctp_conn.h ├── s6a │ ├── s6a.h │ ├── s6a_config.h │ └── s6a_fd.h └── stateMachineFwk │ ├── .smTypes.h.swp │ ├── actionTable.h │ ├── controlBlock.h │ ├── event.h │ ├── permDataBlock.h │ ├── procedureQueue.h │ ├── smEnumTypes.h │ ├── smTypes.h │ ├── state.h │ ├── stateMachineEngine.h │ └── tempDataBlock.h ├── install_builddeps.sh ├── install_rundeps.sh ├── 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 │ ├── __pycache__ │ └── utils.cpython-37.pyc │ ├── codeGen.py │ ├── dataModels │ ├── ctxtManagerAppModel.json │ ├── ctxtManagerAppModel2.json │ ├── generationItem.json │ ├── s1apCtxtMgrAppModel.json │ └── stateMachineAppModel.json │ ├── get-pip.py │ ├── templates │ ├── ctxtManagerTmpls │ │ ├── blockPoolManager.cpp.tt │ │ ├── blockPoolManager.h.tt │ │ ├── commonMacro.tt │ │ ├── dataBlocks.cpp.tt │ │ ├── dataBlocks.h.tt │ │ ├── subsDataGroupManager.cpp.tt │ │ └── subsDataGroupManager.h.tt │ └── stateMachineTmpls │ │ ├── actionHandlers.cpp.tt │ │ ├── actionHandlers.h.tt │ │ ├── enum.tt │ │ ├── state.cpp.tt │ │ ├── state.h.tt │ │ ├── stateFactory.cpp.tt │ │ └── stateFactory.h.tt │ ├── utils.py │ └── utils.pyc └── src ├── cmn ├── Makefile ├── dataGroupManager.cpp ├── debug.cpp └── msgBuffer.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 ├── 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 │ ├── 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 │ ├── sgwsApnLevelLoadControlInformationInDeleteBearerRequest.cpp │ ├── sgwsApnLevelLoadControlInformationInDeleteBearerRequest.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 │ ├── 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 ├── conf │ ├── mme.json │ └── mme.json.license ├── handlers │ ├── attach_aia_ula.c │ ├── attach_authresp.c │ ├── attach_complete.c │ ├── attach_csresp.c │ ├── attach_esmresp.c │ ├── attach_icsresp.c │ ├── attach_idresp.c │ ├── attach_initue.c │ ├── attach_secmoderesp.c │ ├── detach_req.c │ ├── detach_resp.c │ ├── paging.c │ ├── release_req.c │ ├── s11_common_rsp_handler.c │ ├── s1ap_common_req_handler.c │ ├── send_emm_req.c │ ├── send_reset_s1ap.c │ ├── service_req.c │ ├── stage.template │ └── tau_req.c ├── json_config.c ├── main.c ├── mme_config.c ├── mme_state_machine.c ├── monitor_subscriber.c ├── run.sh ├── sec │ └── hash_and_key.c ├── stats.c ├── stop.sh └── ue_table.c ├── s11 ├── Makefile ├── conf │ ├── s11.json │ └── s11.json.license ├── gtpv2c.c ├── handlers │ ├── create_session_handler.c │ ├── ddn_ack_handler.c │ ├── delete_session_handler.c │ ├── modify_bearer_handler.c │ ├── s11_CS_resp_handler.c │ ├── s11_DS_resp_handler.c │ ├── s11_Ddn_handler.c │ ├── s11_MB_resp_handler.c │ ├── s11_RAB_resp_handler.c │ ├── s11_common_msg_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.license ├── contextManager │ ├── Makefile │ ├── dataBlocks.cpp │ ├── enbContextManager.cpp │ ├── s1apContextWrapper.cpp │ ├── s1apContextWrapper_c.cpp │ └── s1apDataGroupManager.cpp ├── handlers │ ├── attach_authreq.c │ ├── attach_authresp.c │ ├── attach_complete.c │ ├── attach_esmreq.c │ ├── attach_esmresp.c │ ├── attach_icsreq.c │ ├── attach_id_req.c │ ├── attach_id_resp.c │ ├── attach_initctxresp.c │ ├── attach_initue.c │ ├── attach_secmoderesp.c │ ├── attach_secreq.c │ ├── common_reject.c │ ├── ctxrelease_req.c │ ├── ctxrelease_resp.c │ ├── detach_accept.c │ ├── detach_req.c │ ├── gen_error_reset.c │ ├── handle_emmreq.c │ ├── ie_parsers.c │ ├── paging.c │ ├── s1ap_encoder.c │ ├── s1ap_mme_common_msg.c │ ├── s1ap_msg_delegator.c │ ├── s1ap_tau_request_handler.c │ ├── s1ap_tau_response_handler.c │ ├── s1setup.c │ └── service_req.c ├── json_config.c ├── main.c ├── options.c ├── s1ap_config.c └── sctp_conn.c ├── s6a ├── Makefile ├── conf │ ├── make_certs.sh │ ├── s6a.json │ ├── s6a.json.license │ ├── s6a_fd.conf │ └── s6a_fd.conf.license ├── fd_init.c ├── handlers │ ├── aia_handler.c │ ├── detach_session_handler.c │ ├── hss_message_delegator.c │ ├── purge_handler.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: -------------------------------------------------------------------------------- 1 | { 2 | "mme": { 3 | "egtp_default_port": 2123, 4 | "ip_addr": "10.0.10.30", 5 | "s1ap_addr": "10.0.10.30", 6 | "egtp_addr": "10.1.10.22", 7 | "sctp_port": 36412, 8 | "name": "vmmestandalone", 9 | "egtp_default_hostname": "sutlej.ccin.ccpu.com", 10 | "__comment__": "Here is comment", 11 | "mcc": { 12 | "dig1": 2, 13 | "dig2": 0, 14 | "dig3": 8 15 | }, 16 | "mnc": { 17 | "dig1": 0, 18 | "dig2": 1, 19 | "dig3": -1 20 | }, 21 | "plmnlist": { 22 | "plmn1": "mcc=315,mnc=010", 23 | "plmn2": "mcc=208,mnc=01" 24 | } 25 | }, 26 | "enb": { 27 | "enb_addr": "10.0.10.1", 28 | "enb_port": "32767" 29 | }, 30 | "s11": { 31 | "sgw_addr": "10.1.10.20", 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 | -------------------------------------------------------------------------------- /.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 2019-present Open Networking Foundation 2 | # 3 | # SPDX-License-Identifier: Apache-2.0 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | # Generated by FOSSA CLI (https://github.com/fossas/fossa-cli) 18 | # Visit https://fossa.com to learn more 19 | 20 | # Usage: FOSSA_API_KEY=<> fossa analyze 21 | # -T is not supported at this moment from fossa side. 22 | 23 | version: 2 24 | cli: 25 | server: https://app.fossa.com 26 | fetcher: custom 27 | project: openmme 28 | analyze: 29 | modules: 30 | - name: openmme 31 | type: raw 32 | target: ../openmme 33 | path: ../openmme 34 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.o 2 | *.obj 3 | *.lib 4 | *.a 5 | *.la 6 | *.so 7 | *.so.* 8 | *.out 9 | .project 10 | .cproject 11 | .settings 12 | tags 13 | cscope.files 14 | -------------------------------------------------------------------------------- /VERSION: -------------------------------------------------------------------------------- 1 | 0.1.0-dev 2 | -------------------------------------------------------------------------------- /build-config: -------------------------------------------------------------------------------- 1 | ## 2 | # Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd. 3 | # 4 | # The software in this package is published under the terms of the Commercial 5 | # Free Software license V.1, a copy of which has been included with this 6 | # distribution in the LICENSE.md file. 7 | # 8 | ROOT=$(PWD) 9 | INCLUDE_DIR=$(ROOT)/include 10 | 11 | INC_DIRS=-I$(INCLUDE_DIR)/mme-app -I$(INCLUDE_DIR)/s11 -I$(INCLUDE_DIR)/s1ap \ 12 | -I$(INCLUDE_DIR)/s6a -I$(ROOT)/src/s1ap/asn1c/asnGenFiles \ 13 | -I$(INCLUDE_DIR)/common -I$(INCLUDE_DIR)/cmn \ 14 | -I$(INCLUDE_DIR)/s1ap/contextManager 15 | 16 | HSS_INC_DIRS = -I$(INCLUDE_DIR)/common -I$(INCLUDE_DIR)/hss 17 | 18 | CC := gcc 19 | 20 | #DEBUG=true 21 | DEBUG=false 22 | 23 | SRC_DIR=$(ROOT)/src 24 | 25 | TARGET_DIR=$(ROOT)/target 26 | 27 | CFLAGS += -g -D_FORTIFY_SOURCE=2 -fasynchronous-unwind-tables -fexceptions 28 | CFLAGS += -fstack-protector-all -fstack-protector-strong -Wall 29 | CFLAGS += -Werror=format-security -Werror=implicit-function-declaration 30 | -------------------------------------------------------------------------------- /include/cmn/basicTypes.h: -------------------------------------------------------------------------------- 1 | /* 2 | * basicTypes.h 3 | * 4 | * Created on: Jul 2, 2014 5 | * Author: hariharanb 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 | 15 | -------------------------------------------------------------------------------- /include/cmn/dataGroupManager.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * Copyright (c) 2019, Infosys Ltd. 4 | * 5 | * SPDX-License-Identifier: Apache-2.0 6 | */ 7 | 8 | #ifndef DATA_GROUP_MANAGER_H 9 | #define DATA_GROUP_MANAGER_H 10 | 11 | #include 12 | #include "controlBlock.h" 13 | #include 14 | 15 | using namespace SM; 16 | 17 | namespace cmn { 18 | namespace DGM 19 | { 20 | class DataGroupManager 21 | { 22 | public: 23 | 24 | DataGroupManager(); 25 | virtual ~DataGroupManager(); 26 | 27 | void initializeCBStore( int DataCount ); 28 | virtual ControlBlock* allocateCB(); 29 | virtual void deAllocateCB( uint32_t cbIndex ); 30 | SM::ControlBlock* findControlBlock( uint32_t index ); 31 | 32 | protected: 33 | ControlBlock* cbstore_m; // Indexed Store 34 | 35 | private: 36 | std::deque freeQ_m; // free Q 37 | std::mutex mutex_m; 38 | 39 | }; 40 | }; 41 | }; 42 | #endif 43 | -------------------------------------------------------------------------------- /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/ddn_info.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 __DDN_INFO_H_ 10 | #define __DDN_INFO_H_ 11 | 12 | #include "err_codes.h" 13 | #include "s1ap_structs.h" 14 | #include "s11_structs.h" 15 | 16 | struct ddn_Q_msg { 17 | int ue_idx; 18 | uint8_t cause; 19 | unsigned char eps_bearer_id; 20 | uint8_t pci; 21 | uint8_t pl; 22 | uint8_t pvi; 23 | }; 24 | 25 | struct ddn_ack_Q_msg { 26 | int ue_idx; 27 | uint8_t cause; 28 | }; 29 | 30 | struct ddn_fail_Q_msg { 31 | int ue_idx; 32 | uint8_t cause; 33 | }; 34 | 35 | 36 | #define S11_DDN_BUF_SIZE sizeof(struct ddn_Q_msg) 37 | #define S11_DDN_ACK_BUF_SIZE sizeof(struct ddn_ack_Q_msg) 38 | #define S11_DDN_FAIL_BUF_SIZE sizeof(struct ddn_fail_Q_msg) 39 | 40 | #endif /*__DDN_INFO_H_*/ 41 | -------------------------------------------------------------------------------- /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/detach_stage1_info.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 __DETACH_STAGE1_INFO_H_ 10 | #define __DETACH_STAGE1_INFO_H_ 11 | 12 | #include "err_codes.h" 13 | #include "s1ap_structs.h" 14 | #include "s1ap_ie.h" 15 | #include "s11_structs.h" 16 | 17 | #define S11_DS_INDICATION_FLAG_SIZE 3 18 | 19 | struct detach_req_Q_msg { 20 | int ue_idx; 21 | int ue_m_tmsi; 22 | int s1ap_enb_ue_id; 23 | }; 24 | 25 | struct DS_Q_msg { 26 | unsigned char indication[S11_DS_INDICATION_FLAG_SIZE];/*Provision*/ 27 | unsigned char bearer_id; 28 | struct fteid s11_sgw_c_fteid; 29 | }; 30 | 31 | struct s6a_purge_Q_msg { 32 | int ue_idx; 33 | unsigned char IMSI[BINARY_IMSI_LEN]; 34 | }; 35 | 36 | #define S1AP_DETACHREQ_STAGE1_BUF_SIZE sizeof(struct detach_req_Q_msg) 37 | 38 | #define S11_DTCHREQ_STAGE1_BUF_SIZE sizeof(struct DS_Q_msg) 39 | #define S6A_PURGEREQ_STAGE1_BUF_SIZE sizeof(struct s6a_purge_Q_msg) 40 | 41 | #endif /*__DETACH_STAGE1_INFO_H_*/ 42 | -------------------------------------------------------------------------------- /include/common/detach_stage2_info.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 __DETACH_STAGE2_INFO_H_ 10 | #define __DETACH_STAGE2_INFO_H_ 11 | 12 | #include "err_codes.h" 13 | #include "s1ap_structs.h" 14 | #include "s1ap_ie.h" 15 | #include "s11_structs.h" 16 | 17 | struct DS_resp_Q_msg { 18 | int ue_idx; 19 | }; 20 | 21 | struct detach_accept_Q_msg { 22 | int ue_idx; 23 | int enb_s1ap_ue_id; 24 | uint8_t int_key[NAS_INT_KEY_SIZE]; 25 | uint16_t dl_seq_no; 26 | int enb_fd; 27 | }; 28 | 29 | struct purge_resp_Q_msg { 30 | int ue_idx; 31 | int status; 32 | }; 33 | 34 | #define S1AP_DTCHRES_STAGE2_BUF_SIZE sizeof(struct DS_resp_Q_msg) 35 | 36 | #define S1AP_DTCHACCEPT_STAGE2_BUF_SIZE sizeof(struct detach_accept_Q_msg) 37 | 38 | #define S1AP_PURGERESP_STAGE2_BUF_SIZE sizeof(struct purge_resp_Q_msg) 39 | 40 | #endif /*__DETACH_STAGE2_INFO_H_*/ 41 | -------------------------------------------------------------------------------- /include/common/detach_stage3_info.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 __DETACH_STAGE3_INFO_H_ 10 | #define __DETACH_STAGE3_INFO_H_ 11 | 12 | struct ctx_release_complete_Q_msg { 13 | int ue_idx; 14 | }; 15 | 16 | #define S1AP_CTXRELRESP_STAGE3_BUF_SIZE sizeof(struct ctx_release_complete_Q_msg) 17 | 18 | #endif /*__DETACH_STAGE3_INFO_H_*/ 19 | -------------------------------------------------------------------------------- /include/common/err_codes.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 ERROR_CODES_H_ 10 | #define ERROR_CODES_H_ 11 | 12 | /*** 13 | Common error codes across MME 14 | */ 15 | 16 | enum ERROR_CODES{ 17 | SUCCESS = 0, 18 | SUCCESS_1 = 1, 19 | /*Generic error codes 101-200*/ 20 | E_FAIL = 101, 21 | E_FAIL_INIT, /*Failed in initialization*/ 22 | E_ALLOC_FAILED, 23 | E_PARSING_FAILED, 24 | E_MAPPING_FAILED, 25 | E_SKIP, 26 | 27 | /*S1AP error codes 201-300 */ 28 | S1AP_AUTH_FAILED = 201, 29 | S1AP_SECMODE_FAILED, 30 | S1AP_IDENTITY_FAILED, 31 | 32 | /*S6a error codes 301-500*/ 33 | S6A_AIA_FAILED = 301, 34 | S6A_FD_ERROR, 35 | S6A_FD_CORE_INIT_FAILED, 36 | S6A_FD_CORE_PARSECONF_FAILED, 37 | S6A_FD_CORE_START_FAILED, 38 | S6A_FD_GET_DICTVAL_FAILED, 39 | S6A_FD_DICTSRCH_FAILED, 40 | }; 41 | 42 | #endif /* ERROR_CODES_H__*/ 43 | -------------------------------------------------------------------------------- /include/common/f9.h: -------------------------------------------------------------------------------- 1 | /*-------------------------------------------------------- 2 | * f9.h 3 | *-------------------------------------------------------- 4 | */ 5 | 6 | 7 | /* The code has been referred from 8 | * 1.https://www.gsma.com/aboutus/wp-content/uploads/2014/12/uea2uia2d1v21.pdf 9 | * 2.https://www.gsma.com/aboutus/wp-content/uploads/2014/12/snow3gspec.pdf 10 | */ 11 | 12 | #ifndef F9_H_ 13 | #define F9_H_ 14 | #include "snow_3g.h" 15 | 16 | /* f9. 17 | * Input key: 128 bit Integrity Key. 18 | * Input count:32-bit Count, Frame dependent input. 19 | * Input fresh: 32-bit Random number. 20 | * Input dir:1 bit, direction of transmission (in the LSB). 21 | * Input data: length number of bits, input bit stream. 22 | * Input length: 64 bit Length, i.e., the number of bits to be MAC'd. 23 | * Output : 32 bit block used as MAC 24 | * Generates 32-bit MAC using UIA2 algorithm as defined in Section 4 25 | * of https://www.gsma.com/aboutus/wp-content/uploads/2014/12/snow3gspec.pdf 26 | * specs document. 27 | */ 28 | 29 | 30 | u8* f9( u8* key, u32 count, u32 fresh, u32 dir, u8 *data, u64 length); 31 | 32 | #endif 33 | 34 | -------------------------------------------------------------------------------- /include/common/ipc_api.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 IPC_API_H_ 10 | #define IPC_API_H_ 11 | 12 | #define IPC_MAX_BUFFER_SIZE 1024 13 | 14 | #define IPC_MODE 0664 15 | 16 | enum ipc_access_mode { 17 | IPC_READ = 01, 18 | IPC_WRITE = 02, 19 | }; 20 | 21 | typedef int ipc_handle; 22 | 23 | int 24 | create_ipc_channel(char *name); 25 | 26 | int 27 | open_ipc_channel(char *name, enum ipc_access_mode access_mode); 28 | 29 | int 30 | create_open_ipc_channel(char *name, 31 | enum ipc_access_mode access_mode); 32 | 33 | int 34 | read_ipc_channel(ipc_handle fd, char *buffer, size_t size); 35 | 36 | int 37 | write_ipc_channel(ipc_handle fd, char *buffer, size_t size); 38 | 39 | int 40 | close_ipc_channel(ipc_handle fd); 41 | 42 | #endif /* IPC_API_H_ */ 43 | -------------------------------------------------------------------------------- /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 | #endif /**/ 28 | -------------------------------------------------------------------------------- /include/common/log.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 __LOG_1_H_ 10 | #define __LOG_1_H_ 11 | 12 | #ifdef __cplusplus 13 | extern "C"{ 14 | #endif 15 | 16 | enum log_levels{ 17 | LOG_DEBUG, 18 | LOG_INFO, 19 | LOG_WARNING, 20 | LOG_ERROR, 21 | LOG_NEVER 22 | }; 23 | 24 | void log_message(int l, const char *file, int line, const char *fmt, ...); 25 | //#define log_msg(LOG_LEVEL, ARGS) set_log(#LOG_LEVEL, __FILE__, __LINE__, __VA_ARGS__) 26 | #define log_msg(LOG_LEVEL, ...) log_message( LOG_LEVEL, __FILE__, __LINE__, __VA_ARGS__) 27 | //#define log_msg(LOG_LEVEL, ...) ; 28 | void enable_logs(); 29 | void disable_logs(); 30 | void set_logging_level(char *level); 31 | void init_backtrace(char *binary); 32 | 33 | #ifdef __cplusplus 34 | } 35 | #endif 36 | 37 | #endif /* __LOG_1_H_ */ 38 | -------------------------------------------------------------------------------- /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/paging_info.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * Copyright (c) 2003-2018, Great Software Laboratory Pvt. Ltd. 4 | * 5 | * SPDX-License-Identifier: Apache-2.0 6 | */ 7 | 8 | #ifndef __PAGING_INFO_H_ 9 | #define __PAGING_INFO_H_ 10 | 11 | struct paging_Q_msg { 12 | int ue_idx; 13 | unsigned char IMSI[BINARY_IMSI_LEN]; 14 | struct TAI tai; 15 | }; 16 | 17 | #define S1AP_PAGING_INFO_BUF_SIZE sizeof(struct paging_Q_msg) 18 | 19 | #endif /*_PAGING_INFO_H_*/ 20 | -------------------------------------------------------------------------------- /include/common/s1ap_emm_message.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * 4 | * SPDX-License-Identifier: Apache-2.0 5 | */ 6 | 7 | #ifndef __S1AP_EMM_MESSAGE_H_ 8 | #define __S1AP_EMM_MESSAGE_H_ 9 | 10 | /** 11 | When MME wants to send EMM information Request to UE 12 | Refer - 24.301 refer 8.2.13 13 | */ 14 | struct ue_emm_info { 15 | uint32_t enb_fd; 16 | uint32_t enb_s1ap_ue_id; 17 | uint32_t mme_s1ap_ue_id; 18 | char short_network_name[16]; 19 | char full_network_name[128]; 20 | uint8_t int_key[NAS_INT_KEY_SIZE]; 21 | unsigned short dl_seq_no; 22 | }; 23 | 24 | #define UE_EMM_INFO_BUF_SIZE sizeof(struct ue_emm_info) 25 | 26 | #endif /*__S1AP_EMM_MESSAGE_H_*/ 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/s1ap_mme_msg.h: -------------------------------------------------------------------------------- 1 | #ifndef __S1AP_MME_MSG_H__ 2 | #define __S1AP_MME_MSG_H__ 3 | #include "s1ap_structs.h" 4 | 5 | struct identityResp_Q_msg { 6 | int ue_idx; 7 | int status; 8 | unsigned char IMSI[BINARY_IMSI_LEN]; 9 | }; 10 | 11 | #define S1AP_IDRESP_BUF_SIZE sizeof(struct identityResp_Q_msg) 12 | 13 | struct tauReq_Q_msg { 14 | int ue_idx; 15 | int s1ap_enb_ue_id; 16 | int seq_num; 17 | int enb_fd; 18 | }; 19 | #define S1AP_TAUREQ_BUF_SIZE sizeof(struct tauReq_Q_msg) 20 | 21 | 22 | struct tauResp_Q_msg { 23 | int ue_idx; 24 | int enb_fd; 25 | int s1ap_enb_ue_id; 26 | int status; 27 | int dl_seq_no; 28 | uint8_t int_key[NAS_INT_KEY_SIZE]; 29 | struct TAI tai; 30 | unsigned int m_tmsi; 31 | }; 32 | #define S1AP_TAURESP_BUF_SIZE sizeof(struct tauResp_Q_msg) 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /include/common/servicereq_info.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 __SERVICEREQ_INFO_H_ 10 | #define __SERVICEREQ_INFO_H_ 11 | 12 | #include "err_codes.h" 13 | #include "s1ap_structs.h" 14 | #include "s1ap_ie.h" 15 | 16 | 17 | 18 | struct service_req_Q_msg { 19 | int ue_idx; 20 | int s1ap_enb_ue_id; 21 | int enb_fd; 22 | unsigned int ksi; 23 | unsigned int seq_no; 24 | unsigned short mac; 25 | struct TAI tai; 26 | struct CGI utran_cgi; 27 | struct STMSI s_tmsi; 28 | }; 29 | 30 | #define S1AP_SERVICEREQ_BUF_SIZE sizeof(struct service_req_Q_msg) 31 | 32 | 33 | #endif /*__SERVICEREQ_INFO_H_*/ 34 | -------------------------------------------------------------------------------- /include/common/stage2_info.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 __STAGE2_INFO_H_ 10 | #define __STAGE2_INFO_H_ 11 | 12 | #include "err_codes.h" 13 | #include "s1ap_structs.h" 14 | #include "s1ap_ie.h" 15 | 16 | #define NAS_RAND_SIZE 16 17 | #define NAS_AUTN_SIZE 16 18 | struct authreq_info { 19 | int ue_idx; /*mme s1ap UE id*/ 20 | int enb_s1ap_ue_id; 21 | unsigned char rand[NAS_RAND_SIZE]; 22 | unsigned char autn[NAS_AUTN_SIZE]; 23 | //struct TAI tai; 24 | int enb_fd; 25 | }; 26 | 27 | #define S1AP_AUTHREQ_STAGE2_BUF_SIZE sizeof(struct authreq_info) 28 | 29 | #endif /*__STAGE2_INFO_H_*/ 30 | 31 | -------------------------------------------------------------------------------- /include/common/stage3_info.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 __STAGE3_INFO_H_ 10 | #define __STAGE3_INFO_H_ 11 | 12 | #include "err_codes.h" 13 | #include "s1ap_structs.h" 14 | #include "stage1_s6a_msg.h" 15 | #include "s1ap_ie.h" 16 | 17 | struct authresp_Q_msg { 18 | int ue_idx; 19 | int status; 20 | struct XRES res; 21 | struct AUTS auts; 22 | //struct TAI tai; 23 | //TODO: need to pass enb ue id for validation? 24 | }; 25 | 26 | struct sec_mode_Q_msg { 27 | int ue_idx; 28 | int enb_s1ap_ue_id; 29 | struct UE_net_capab ue_network; 30 | struct MS_net_capab ms_net_capab; 31 | struct KASME key; 32 | uint8_t int_key[NAS_INT_KEY_SIZE]; 33 | uint32_t dl_seq_no; 34 | int enb_fd; 35 | }; 36 | 37 | #define S1AP_AUTHRESP_STAGE3_BUF_SIZE sizeof(struct authresp_Q_msg) 38 | #define S1AP_SECREQ_STAGE3_BUF_SIZE sizeof(struct sec_mode_Q_msg) 39 | 40 | #endif /*STAGE3_INFO_H_*/ 41 | -------------------------------------------------------------------------------- /include/common/stage4_info.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 __STAGE4_INFO_H_ 10 | #define __STAGE4_INFO_H_ 11 | 12 | #include "err_codes.h" 13 | #include "s1ap_structs.h" 14 | #include "stage1_s6a_msg.h" 15 | #include "s1ap_ie.h" 16 | 17 | struct secmode_resp_Q_msg { 18 | int ue_idx; 19 | int status; 20 | }; 21 | 22 | struct esm_req_Q_msg { 23 | int ue_idx; 24 | int enb_s1ap_ue_id; 25 | uint8_t int_key[NAS_INT_KEY_SIZE]; 26 | unsigned short dl_seq_no; 27 | int enb_fd; 28 | unsigned char pti; 29 | }; 30 | 31 | #define S1AP_SECRESP_STAGE4_BUF_SIZE sizeof(struct secmode_resp_Q_msg) 32 | #define S1AP_ESMREQ_STAGE4_BUF_SIZE sizeof(struct esm_req_Q_msg) 33 | 34 | #endif /*STAGE4_INFO_H_*/ 35 | -------------------------------------------------------------------------------- /include/common/stage5_info.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 __STAGE5_INFO_H_ 10 | #define __STAGE5_INFO_H_ 11 | 12 | #include "err_codes.h" 13 | #include "s1ap_structs.h" 14 | #include "s1ap_ie.h" 15 | 16 | struct esm_resp_Q_msg { 17 | int ue_idx; 18 | int status; 19 | struct apn_name apn; 20 | }; 21 | 22 | #define S1AP_ESMRESP_STAGE5_BUF_SIZE sizeof(struct esm_resp_Q_msg) 23 | 24 | #endif /*STAGE5_INFO_H_*/ 25 | -------------------------------------------------------------------------------- /include/common/stage5_s11_info.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 __STAGE5_S11_INFO_H_ 10 | #define __STAGE5_S11_INFO_H_ 11 | 12 | #include "err_codes.h" 13 | #include "s1ap_structs.h" 14 | #include "s1ap_ie.h" 15 | 16 | struct CS_Q_msg { 17 | int ue_idx; 18 | unsigned char IMSI[BINARY_IMSI_LEN]; 19 | struct apn_name selected_apn; 20 | struct TAI tai; 21 | struct CGI utran_cgi; 22 | unsigned char MSISDN[MSISDN_STR_LEN]; 23 | unsigned int max_requested_bw_dl; 24 | unsigned int max_requested_bw_ul; 25 | unsigned char pco_length; 26 | unsigned char pco_options[MAX_PCO_OPTION_SIZE]; 27 | unsigned int paa_v4_addr; 28 | }; 29 | 30 | #define S11_CSREQ_STAGE5_BUF_SIZE sizeof(struct CS_Q_msg) 31 | 32 | #endif /*STAGE5_S11_INFO_H_*/ 33 | -------------------------------------------------------------------------------- /include/common/stage7_info.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 __STAGE7_INFO_H_ 10 | #define __STAGE7_INFO_H_ 11 | 12 | #include "err_codes.h" 13 | #include "s1ap_structs.h" 14 | #include "s11_structs.h" 15 | 16 | struct initctx_resp_Q_msg{ 17 | int ue_idx; 18 | unsigned short eRAB_id; 19 | unsigned int transp_layer_addr; 20 | unsigned int gtp_teid; 21 | }; 22 | 23 | #define S11_MB_INDICATION_FLAG_SIZE 3 24 | struct MB_Q_msg { 25 | int ue_idx; 26 | unsigned short indication[S11_MB_INDICATION_FLAG_SIZE];/*Provision*/ 27 | unsigned char bearer_id; 28 | struct fteid s11_sgw_c_fteid; 29 | struct fteid s1u_enb_fteid; 30 | }; 31 | 32 | #define S1AP_ICSRESP_STAGE7_BUF_SIZE sizeof(struct initctx_resp_Q_msg) 33 | #define S11_MBREQ_STAGE7_BUF_SIZE sizeof(struct MB_Q_msg) 34 | 35 | #endif /*STAGE6_INFO_H_*/ 36 | -------------------------------------------------------------------------------- /include/common/stage8_info.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 __STAGE8_INFO_H_ 10 | #define __STAGE8_INFO_H_ 11 | 12 | #include "err_codes.h" 13 | #include "s1ap_structs.h" 14 | #include "s11_structs.h" 15 | 16 | struct MB_resp_Q_msg { 17 | int ue_idx; 18 | struct fteid s1u_sgw_fteid; 19 | }; 20 | 21 | struct attach_complete_Q_msg { 22 | int ue_idx; 23 | unsigned short status; 24 | }; 25 | 26 | #define S11_MBRESP_STAGE8_BUF_SIZE sizeof(struct MB_resp_Q_msg) 27 | #define S1AP_ATT_COMP_STAGE8_BUF_SIZE sizeof(struct attach_complete_Q_msg) 28 | 29 | #endif /*STAGE8_INFO_H_*/ 30 | -------------------------------------------------------------------------------- /include/common/structs.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * Copyright 2019-present, Infosys Limited. 4 | * 5 | * SPDX-License-Identifier: Apache-2.0 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 | }; 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /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 | #endif 18 | -------------------------------------------------------------------------------- /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/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; 21 | 22 | void 23 | init_parser(char *path); 24 | 25 | int 26 | parse_s11_conf(); 27 | 28 | #endif /*__S11_CONFIG_H*/ 29 | -------------------------------------------------------------------------------- /include/s1ap/contextManager/s1apContextWrapper.h: -------------------------------------------------------------------------------- 1 | #ifndef __S1apContextWrappers_H 2 | #define __S1apContextWrappers_H 3 | 4 | 5 | #include "stdint.h" 6 | #include "structs.h" 7 | 8 | 9 | uint32_t createControlBlock_cpp(); 10 | uint32_t findControlBlockWithEnbId_cpp(uint32_t enbId); 11 | uint32_t findControlBlockWithEnbFd_cpp(uint32_t enbFd); 12 | uint32_t getEnbFdWithCbIndex_cpp(uint32_t cbIndex); 13 | uint32_t setValuesForEnbCtx_cpp(uint32_t cbIndex, 14 | struct EnbStruct* enbCtx); 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /include/s1ap/contextManager/s1apContextWrapper_c.h: -------------------------------------------------------------------------------- 1 | #ifndef __S1apContextWrappers_C_H 2 | #define __S1apContextWrappers_C_H 3 | 4 | 5 | #ifdef __cplusplus 6 | extern "C" { 7 | #endif 8 | #include 9 | #include "structs.h" 10 | 11 | uint32_t createControlBlock(); 12 | uint32_t findControlBlockWithEnbId(uint32_t enbId); 13 | uint32_t findControlBlockWithEnbFd(uint32_t enbFd); 14 | uint32_t getEnbFdWithCbIndex(uint32_t cbIndex); 15 | uint32_t setValuesForEnbCtx(uint32_t cbIndex, 16 | struct EnbStruct* enbCtx); 17 | 18 | #ifdef __cplusplus 19 | } 20 | #endif 21 | #endif 22 | -------------------------------------------------------------------------------- /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 | #define REQ_ARGS 0x0000 20 | void parse_args(int argc, char **argv); 21 | void log_buffer_free(char** buffer); 22 | void convert_imsi_to_bcd_str(uint8_t *src, uint8_t* dest); 23 | 24 | #endif /* OPTIONS_H_ */ 25 | -------------------------------------------------------------------------------- /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 "stage1_info.h" 13 | #include "s1ap_msg_codes.h" 14 | #include "s1ap_structs.h" 15 | 16 | 17 | #define S1AP_INITUE_IEs 5 18 | 19 | /*** IE parsing functions ***/ 20 | typedef void * (ie_parser_function)(char *msg, int len); 21 | 22 | //ie_parser_function ie_parser[32];//={}; 23 | 24 | void* ie_parse_global_enb_id(char *msg, int len); 25 | void* ie_parse_enb_name(char *msg, int len); 26 | void* ie_parse_supported_TAs(char *msg, int len); 27 | void* ie_parse_pagins_DRX(char *msg, int len); 28 | 29 | /*** IE parsing functions end***/ 30 | 31 | #endif /*S1AP_IE_H_*/ 32 | -------------------------------------------------------------------------------- /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/.smTypes.h.swp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/openmme/181ee0a2a16fe4eea1b84986477f37d6ebbe55c3/include/stateMachineFwk/.smTypes.h.swp -------------------------------------------------------------------------------- /include/stateMachineFwk/actionTable.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * Copyright (c) 2019, Infosys Ltd. 4 | * 5 | * SPDX-License-Identifier: Apache-2.0 6 | */ 7 | 8 | #include 9 | #include 10 | #include "smTypes.h" 11 | 12 | #ifndef ACTIONTABLE_H_ 13 | #define ACTIONTABLE_H_ 14 | 15 | namespace SM 16 | { 17 | 18 | class ControlBlock; 19 | class State; 20 | 21 | using namespace std; 22 | 23 | class ActionTable 24 | { 25 | public: 26 | ActionTable(); 27 | virtual ~ActionTable(); 28 | 29 | virtual void display(); 30 | 31 | ActStatus executeActions(ControlBlock& cb); 32 | void addAction(ActionPointer act); 33 | void setNextState(State*st); 34 | private: 35 | deque actionsQ; 36 | State* nextStatep; 37 | }; 38 | } 39 | #endif /* ACTIONTABLE_H_ */ 40 | -------------------------------------------------------------------------------- /include/stateMachineFwk/event.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * Copyright (c) 2019, Infosys Ltd. 4 | * 5 | * SPDX-License-Identifier: Apache-2.0 6 | */ 7 | 8 | #ifndef EVENT_H_ 9 | #define EVENT_H_ 10 | 11 | #include 12 | #include 13 | 14 | #include "smEnumTypes.h" 15 | 16 | using namespace std; 17 | 18 | namespace SM 19 | { 20 | class Event 21 | { 22 | public: 23 | Event(); 24 | Event(Event_e evtID, void* eventData); 25 | virtual ~Event(); 26 | 27 | inline Event_e getEventId()const 28 | { 29 | return eventID; 30 | } 31 | 32 | void* getEventData() const; 33 | 34 | virtual void display(); 35 | 36 | private: 37 | Event_e eventID; 38 | void * eventData_p; 39 | }; 40 | } 41 | 42 | #endif /* EVENT_H_ */ 43 | -------------------------------------------------------------------------------- /include/stateMachineFwk/permDataBlock.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * Copyright (c) 2019, Infosys Ltd. 4 | * 5 | * SPDX-License-Identifier: Apache-2.0 6 | */ 7 | 8 | #ifndef PERMDATABLOCK_H_ 9 | #define PERMDATABLOCK_H_ 10 | 11 | namespace SM 12 | { 13 | class PermDataBlock 14 | { 15 | public: 16 | PermDataBlock(); 17 | virtual ~PermDataBlock(); 18 | virtual void display(); 19 | 20 | private: 21 | // Add permanant data fields here 22 | unsigned int contextID; 23 | }; 24 | } 25 | 26 | #endif /* PERMDATABLOCK_H_ */ 27 | -------------------------------------------------------------------------------- /include/stateMachineFwk/procedureQueue.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * Copyright (c) 2019, Infosys Ltd. 4 | * 5 | * SPDX-License-Identifier: Apache-2.0 6 | */ 7 | 8 | #ifndef PROCEDUREQUEUE_H_ 9 | #define PROCEDUREQUEUE_H_ 10 | 11 | #include 12 | #include 13 | #include 14 | 15 | using namespace std; 16 | 17 | namespace SM 18 | { 19 | 20 | class ControlBlock; 21 | 22 | class ProcedureQueue 23 | { 24 | public: 25 | ProcedureQueue(); 26 | ~ProcedureQueue(); 27 | 28 | ControlBlock* pop(); 29 | bool push(ControlBlock* cb); 30 | 31 | private: 32 | queue cbQ; 33 | std::mutex mutex_m; 34 | sem_t pop_semaphore; 35 | }; 36 | } 37 | #endif /* PROCEDUREQUEUE_H_ */ 38 | -------------------------------------------------------------------------------- /include/stateMachineFwk/smTypes.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * Copyright (c) 2019, Infosys Ltd. 4 | * 5 | * SPDX-License-Identifier: Apache-2.0 6 | */ 7 | 8 | #ifndef INCLUDE_STATEMACHFWK_SMTYPES_H_ 9 | #define INCLUDE_STATEMACHFWK_SMTYPES_H_ 10 | 11 | #include 12 | #include 13 | 14 | using namespace std; 15 | 16 | namespace SM{ 17 | 18 | class ControlBlock; 19 | class State; 20 | class ActionTable; 21 | 22 | enum ActStatus 23 | { 24 | PROCEED, 25 | HALT, 26 | ABORT 27 | }; 28 | 29 | enum ControlBlockState 30 | { 31 | FREE, 32 | ALLOCATED, 33 | MAX_STATE 34 | }; 35 | 36 | using ActionPointer = ActStatus(*)(ControlBlock&); 37 | using EventToActionTableMap = std::map ; 38 | 39 | }; 40 | 41 | #endif /* INCLUDE_STATEMACHFWK_SMTYPES_H_ */ 42 | -------------------------------------------------------------------------------- /include/stateMachineFwk/state.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * Copyright (c) 2019, Infosys Ltd. 4 | * 5 | * SPDX-License-Identifier: Apache-2.0 6 | */ 7 | 8 | #ifndef STATE_H_ 9 | #define STATE_H_ 10 | 11 | #include 12 | #include 13 | #include "smTypes.h" 14 | 15 | using namespace std; 16 | 17 | namespace SM 18 | { 19 | class State 20 | { 21 | public: 22 | State(State_e sID); 23 | virtual ~State(); 24 | 25 | virtual void display(); 26 | 27 | ActStatus executeActions(Event_e evtId,ControlBlock& cb); 28 | 29 | inline State_e getStateId()const 30 | { 31 | return stateID; 32 | } 33 | 34 | protected: 35 | State_e stateID; 36 | EventToActionTableMap eventToActionsMap; 37 | }; 38 | } 39 | #endif /* STATE_H_ */ 40 | -------------------------------------------------------------------------------- /include/stateMachineFwk/stateMachineEngine.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * Copyright (c) 2019, Infosys Ltd. 4 | * 5 | * SPDX-License-Identifier: Apache-2.0 6 | */ 7 | 8 | #ifndef STATEMACHINEENGINE_H_ 9 | #define STATEMACHINEENGINE_H_ 10 | 11 | #include 12 | #include "smTypes.h" 13 | #include "procedureQueue.h" 14 | #include "event.h" 15 | 16 | namespace SM 17 | { 18 | class State; 19 | class StateMachineEngine 20 | { 21 | public: 22 | ~StateMachineEngine(); 23 | static StateMachineEngine* Instance(); 24 | void run(); 25 | bool addCBToProcQ(ControlBlock* cb); 26 | ActStatus handleProcedureEvent(ControlBlock& cb, State& currentState, Event& currentEvent); 27 | private: 28 | StateMachineEngine(); 29 | 30 | ProcedureQueue procQ_m; 31 | }; 32 | } 33 | 34 | #endif /* STATEMACHINEENGINE_H_ */ 35 | -------------------------------------------------------------------------------- /include/stateMachineFwk/tempDataBlock.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-present Open Networking Foundation 3 | * Copyright (c) 2019, Infosys Ltd. 4 | * 5 | * SPDX-License-Identifier: Apache-2.0 6 | */ 7 | 8 | #ifndef TEMPDATABLOCK_H_ 9 | #define TEMPDATABLOCK_H_ 10 | 11 | namespace SM 12 | { 13 | class State; 14 | class TempDataBlock 15 | { 16 | public: 17 | TempDataBlock(); 18 | virtual ~TempDataBlock(); 19 | 20 | virtual void display(); 21 | 22 | State* getCurrentState(); 23 | void setNextState(State* state); 24 | 25 | TempDataBlock* getNextTempDataBlock(); 26 | void setNextTempDataBlock(TempDataBlock* tdb_p); 27 | 28 | protected: 29 | State* currentStatep; 30 | TempDataBlock* next; 31 | }; 32 | } 33 | 34 | #endif /* TEMPDATABLOCK_H_ */ 35 | 36 | -------------------------------------------------------------------------------- /install_builddeps.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright 2019-present Open Networking Foundation 4 | # 5 | # SPDX-License-Identifier: Apache-2.0 6 | # 7 | 8 | SUDO='' 9 | [[ $EUID -ne 0 ]] && SUDO=sudo 10 | 11 | install_build_pkg_deps() { 12 | $SUDO apt-get update && $SUDO apt-get install -y \ 13 | git \ 14 | build-essential \ 15 | cmake \ 16 | libuv-dev \ 17 | libgcrypt-dev \ 18 | libidn11-dev \ 19 | bison \ 20 | flex \ 21 | libgnutls-dev \ 22 | libsctp-dev \ 23 | libssl-dev 24 | } 25 | 26 | install_freediameter() { 27 | $SUDO rm -rf /tmp/freediameter 28 | git clone -q https://github.com/omec-project/freediameter.git /tmp/freediameter 29 | pushd /tmp/freediameter 30 | mkdir -p build && cd build 31 | cmake -DDISABLE_SCTP:BOOL=ON .. && make -j && $SUDO make install 32 | } 33 | 34 | install_build_deps() { 35 | install_build_pkg_deps 36 | install_freediameter 37 | } 38 | 39 | (return 2>/dev/null) && echo "Sourced" && return 40 | 41 | set -o errexit 42 | set -o pipefail 43 | set -o nounset 44 | 45 | install_build_deps 46 | echo "Dependency install completed" 47 | -------------------------------------------------------------------------------- /install_rundeps.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright 2019-present Open Networking Foundation 4 | # 5 | # SPDX-License-Identifier: Apache-2.0 6 | # 7 | 8 | SUDO='' 9 | [[ $EUID -ne 0 ]] && SUDO=sudo 10 | 11 | install_run_pkg_deps() { 12 | $SUDO apt-get update && $SUDO apt-get install -y \ 13 | openssl \ 14 | libidn11 \ 15 | libgnutls30 \ 16 | netbase \ 17 | libsctp1 18 | } 19 | 20 | install_run_utils() { 21 | $SUDO apt-get update && $SUDO apt-get install -y \ 22 | jq \ 23 | dnsutils \ 24 | iproute2 \ 25 | iputils-ping \ 26 | tcpdump 27 | } 28 | 29 | cleanup_image() { 30 | $SUDO rm -rf /var/lib/apt/lists/* 31 | } 32 | 33 | install_run_deps() { 34 | install_run_pkg_deps 35 | } 36 | 37 | (return 2>/dev/null) && echo "Sourced" && return 38 | 39 | set -o errexit 40 | set -o pipefail 41 | set -o nounset 42 | 43 | install_run_deps 44 | echo "Dependency install completed" 45 | -------------------------------------------------------------------------------- /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/openmme/181ee0a2a16fe4eea1b84986477f37d6ebbe55c3/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 (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 | -------------------------------------------------------------------------------- /scripts/SMCodeGen/__pycache__/utils.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/openmme/181ee0a2a16fe4eea1b84986477f37d6ebbe55c3/scripts/SMCodeGen/__pycache__/utils.cpython-37.pyc -------------------------------------------------------------------------------- /scripts/SMCodeGen/dataModels/ctxtManagerAppModel.json: -------------------------------------------------------------------------------- 1 | { 2 | "DataStore": 3 | { 4 | "DataGroups":[ 5 | { 6 | "DgName":"SubscriberData", 7 | "PoolSize":"8000", 8 | "DataBlocks":[ 9 | { 10 | "BlockName":"EnbContext", 11 | "BlockType":"Permanent", 12 | "Parent":"None", 13 | "PoolSize":"8000", 14 | "Cardinality":"1", 15 | "Data":[ 16 | { 17 | "Name": "enbFd", 18 | "Type": "int", 19 | "Key":"Yes" 20 | }, 21 | { 22 | "Name": "s1apEnbUeId", 23 | "Type": "int", 24 | "Key":"No" 25 | }, 26 | { 27 | "Name": "tai", 28 | "Type": "Tai", 29 | "Key":"No" 30 | } 31 | ] 32 | } 33 | ] 34 | } 35 | ] 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /scripts/SMCodeGen/dataModels/s1apCtxtMgrAppModel.json: -------------------------------------------------------------------------------- 1 | { 2 | "DataStore": 3 | { 4 | "DataGroups":[ 5 | { 6 | "DgName":"S1ap", 7 | "PoolSize":"8000", 8 | "DataBlocks":[ 9 | { 10 | "BlockName":"EnbContext", 11 | "BlockType":"Permanent", 12 | "Parent":"None", 13 | "PoolSize":"8000", 14 | "Cardinality":"1", 15 | "Data":[ 16 | { 17 | "Name": "enbFd", 18 | "Type": "int", 19 | "Key":"Yes" 20 | }, 21 | { 22 | "Name": "s1apEnbUeId", 23 | "Type": "int", 24 | "Key":"No" 25 | }, 26 | { 27 | "Name": "tai", 28 | "Type": "Tai", 29 | "Key":"No" 30 | } 31 | ] 32 | } 33 | ] 34 | } 35 | ] 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /scripts/SMCodeGen/utils.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/openmme/181ee0a2a16fe4eea1b84986477f37d6ebbe55c3/scripts/SMCodeGen/utils.pyc -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/additionalProtocolConfigurationOptionsIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * additionalProtocolConfigurationOptionsIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef ADDITIONALPROTOCOLCONFIGURATIONOPTIONSIE_H_ 9 | #define ADDITIONALPROTOCOLCONFIGURATIONOPTIONSIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class AdditionalProtocolConfigurationOptionsIe: public GtpV2Ie { 16 | public: 17 | AdditionalProtocolConfigurationOptionsIe(); 18 | virtual ~AdditionalProtocolConfigurationOptionsIe(); 19 | 20 | bool encodeAdditionalProtocolConfigurationOptionsIe(MsgBuffer &buffer, 21 | AdditionalProtocolConfigurationOptionsIeData const &data); 22 | bool decodeAdditionalProtocolConfigurationOptionsIe(MsgBuffer &buffer, 23 | AdditionalProtocolConfigurationOptionsIeData &data, Uint16 length); 24 | void displayAdditionalProtocolConfigurationOptionsIe_v(AdditionalProtocolConfigurationOptionsIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* ADDITIONALPROTOCOLCONFIGURATIONOPTIONSIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/ambrIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ambrIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef AMBRIE_H_ 9 | #define AMBRIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class AmbrIe: public GtpV2Ie { 16 | public: 17 | AmbrIe(); 18 | virtual ~AmbrIe(); 19 | 20 | bool encodeAmbrIe(MsgBuffer &buffer, 21 | AmbrIeData const &data); 22 | bool decodeAmbrIe(MsgBuffer &buffer, 23 | AmbrIeData &data, Uint16 length); 24 | void displayAmbrIe_v(AmbrIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* AMBRIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/ambrMmbrIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ambrMmbrIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef AMBRMMBRIE_H_ 9 | #define AMBRMMBRIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class AmbrMmbrIe: public GtpV2Ie { 16 | public: 17 | AmbrMmbrIe(); 18 | virtual ~AmbrMmbrIe(); 19 | 20 | bool encodeAmbrMmbrIe(MsgBuffer &buffer, 21 | AmbrMmbrIeData const &data); 22 | bool decodeAmbrMmbrIe(MsgBuffer &buffer, 23 | AmbrMmbrIeData &data, Uint16 length); 24 | void displayAmbrMmbrIe_v(AmbrMmbrIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* AMBRMMBRIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/apnAndRelativeCapacityIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * apnAndRelativeCapacityIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef APNANDRELATIVECAPACITYIE_H_ 9 | #define APNANDRELATIVECAPACITYIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class ApnAndRelativeCapacityIe: public GtpV2Ie { 16 | public: 17 | ApnAndRelativeCapacityIe(); 18 | virtual ~ApnAndRelativeCapacityIe(); 19 | 20 | bool encodeApnAndRelativeCapacityIe(MsgBuffer &buffer, 21 | ApnAndRelativeCapacityIeData const &data); 22 | bool decodeApnAndRelativeCapacityIe(MsgBuffer &buffer, 23 | ApnAndRelativeCapacityIeData &data, Uint16 length); 24 | void displayApnAndRelativeCapacityIe_v(ApnAndRelativeCapacityIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* APNANDRELATIVECAPACITYIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/apnIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * apnIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef APNIE_H_ 9 | #define APNIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class ApnIe: public GtpV2Ie { 16 | public: 17 | ApnIe(); 18 | virtual ~ApnIe(); 19 | 20 | bool encodeApnIe(MsgBuffer &buffer, 21 | ApnIeData const &data); 22 | bool decodeApnIe(MsgBuffer &buffer, 23 | ApnIeData &data, Uint16 length); 24 | void displayApnIe_v(ApnIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* APNIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/apnRestrictionIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * apnRestrictionIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef APNRESTRICTIONIE_H_ 9 | #define APNRESTRICTIONIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class ApnRestrictionIe: public GtpV2Ie { 16 | public: 17 | ApnRestrictionIe(); 18 | virtual ~ApnRestrictionIe(); 19 | 20 | bool encodeApnRestrictionIe(MsgBuffer &buffer, 21 | ApnRestrictionIeData const &data); 22 | bool decodeApnRestrictionIe(MsgBuffer &buffer, 23 | ApnRestrictionIeData &data, Uint16 length); 24 | void displayApnRestrictionIe_v(ApnRestrictionIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* APNRESTRICTIONIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/arpIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * arpIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef ARPIE_H_ 9 | #define ARPIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class ArpIe: public GtpV2Ie { 16 | public: 17 | ArpIe(); 18 | virtual ~ArpIe(); 19 | 20 | bool encodeArpIe(MsgBuffer &buffer, 21 | ArpIeData const &data); 22 | bool decodeArpIe(MsgBuffer &buffer, 23 | ArpIeData &data, Uint16 length); 24 | void displayArpIe_v(ArpIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* ARPIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/bearerContextIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * bearerContextIe.cpp 3 | * 4 | * Revisit header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef BEARERCONTEXTIE_H_ 9 | #define BEARERCONTEXTIE_H_ 10 | 11 | #include 12 | #include "manual/gtpV2Ie.h" 13 | #include "manual/gtpV2GroupedIe.h" 14 | #include "gtpV2DataTypes.h" 15 | 16 | class BearerContextIe:public GtpV2Ie 17 | { 18 | public: 19 | BearerContextIe (); 20 | virtual ~ BearerContextIe (); 21 | 22 | GtpV2GroupedIe & getGroupedIe (Uint8 msgType, Uint8 instance); 23 | void insertGroupedIeObject (Uint8 msgType, Uint8 instance, 24 | GtpV2GroupedIe * grpIe_p); 25 | 26 | private: 27 | map < Uint16, GtpV2GroupedIe * >groupedIeObjectContainer; // map[msgType || instance] 28 | }; 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/bearerFlagsIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * bearerFlagsIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef BEARERFLAGSIE_H_ 9 | #define BEARERFLAGSIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class BearerFlagsIe: public GtpV2Ie { 16 | public: 17 | BearerFlagsIe(); 18 | virtual ~BearerFlagsIe(); 19 | 20 | bool encodeBearerFlagsIe(MsgBuffer &buffer, 21 | BearerFlagsIeData const &data); 22 | bool decodeBearerFlagsIe(MsgBuffer &buffer, 23 | BearerFlagsIeData &data, Uint16 length); 24 | void displayBearerFlagsIe_v(BearerFlagsIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* BEARERFLAGSIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/bearerQosIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * bearerQosIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef BEARERQOSIE_H_ 9 | #define BEARERQOSIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class BearerQosIe: public GtpV2Ie { 16 | public: 17 | BearerQosIe(); 18 | virtual ~BearerQosIe(); 19 | 20 | bool encodeBearerQosIe(MsgBuffer &buffer, 21 | BearerQosIeData const &data); 22 | bool decodeBearerQosIe(MsgBuffer &buffer, 23 | BearerQosIeData &data, Uint16 length); 24 | void displayBearerQosIe_v(BearerQosIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* BEARERQOSIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/bearerTftIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * bearerTftIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef BEARERTFTIE_H_ 9 | #define BEARERTFTIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class BearerTftIe: public GtpV2Ie { 16 | public: 17 | BearerTftIe(); 18 | virtual ~BearerTftIe(); 19 | 20 | bool encodeBearerTftIe(MsgBuffer &buffer, 21 | BearerTftIeData const &data); 22 | bool decodeBearerTftIe(MsgBuffer &buffer, 23 | BearerTftIeData &data, Uint16 length); 24 | void displayBearerTftIe_v(BearerTftIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* BEARERTFTIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/causeIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * causeIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef CAUSEIE_H_ 9 | #define CAUSEIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class CauseIe: public GtpV2Ie { 16 | public: 17 | CauseIe(); 18 | virtual ~CauseIe(); 19 | 20 | bool encodeCauseIe(MsgBuffer &buffer, 21 | CauseIeData const &data); 22 | bool decodeCauseIe(MsgBuffer &buffer, 23 | CauseIeData &data, Uint16 length); 24 | void displayCauseIe_v(CauseIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* CAUSEIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/changeReportingActionIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * changeReportingActionIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef CHANGEREPORTINGACTIONIE_H_ 9 | #define CHANGEREPORTINGACTIONIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class ChangeReportingActionIe: public GtpV2Ie { 16 | public: 17 | ChangeReportingActionIe(); 18 | virtual ~ChangeReportingActionIe(); 19 | 20 | bool encodeChangeReportingActionIe(MsgBuffer &buffer, 21 | ChangeReportingActionIeData const &data); 22 | bool decodeChangeReportingActionIe(MsgBuffer &buffer, 23 | ChangeReportingActionIeData &data, Uint16 length); 24 | void displayChangeReportingActionIe_v(ChangeReportingActionIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* CHANGEREPORTINGACTIONIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/chargingCharacteristicsIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * chargingCharacteristicsIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef CHARGINGCHARACTERISTICSIE_H_ 9 | #define CHARGINGCHARACTERISTICSIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class ChargingCharacteristicsIe: public GtpV2Ie { 16 | public: 17 | ChargingCharacteristicsIe(); 18 | virtual ~ChargingCharacteristicsIe(); 19 | 20 | bool encodeChargingCharacteristicsIe(MsgBuffer &buffer, 21 | ChargingCharacteristicsIeData const &data); 22 | bool decodeChargingCharacteristicsIe(MsgBuffer &buffer, 23 | ChargingCharacteristicsIeData &data, Uint16 length); 24 | void displayChargingCharacteristicsIe_v(ChargingCharacteristicsIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* CHARGINGCHARACTERISTICSIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/chargingIdIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * chargingIdIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef CHARGINGIDIE_H_ 9 | #define CHARGINGIDIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class ChargingIdIe: public GtpV2Ie { 16 | public: 17 | ChargingIdIe(); 18 | virtual ~ChargingIdIe(); 19 | 20 | bool encodeChargingIdIe(MsgBuffer &buffer, 21 | ChargingIdIeData const &data); 22 | bool decodeChargingIdIe(MsgBuffer &buffer, 23 | ChargingIdIeData &data, Uint16 length); 24 | void displayChargingIdIe_v(ChargingIdIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* CHARGINGIDIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/cnOperatorSelectionEntityIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * cnOperatorSelectionEntityIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef CNOPERATORSELECTIONENTITYIE_H_ 9 | #define CNOPERATORSELECTIONENTITYIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class CnOperatorSelectionEntityIe: public GtpV2Ie { 16 | public: 17 | CnOperatorSelectionEntityIe(); 18 | virtual ~CnOperatorSelectionEntityIe(); 19 | 20 | bool encodeCnOperatorSelectionEntityIe(MsgBuffer &buffer, 21 | CnOperatorSelectionEntityIeData const &data); 22 | bool decodeCnOperatorSelectionEntityIe(MsgBuffer &buffer, 23 | CnOperatorSelectionEntityIeData &data, Uint16 length); 24 | void displayCnOperatorSelectionEntityIe_v(CnOperatorSelectionEntityIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* CNOPERATORSELECTIONENTITYIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/counterIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * counterIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef COUNTERIE_H_ 9 | #define COUNTERIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class CounterIe: public GtpV2Ie { 16 | public: 17 | CounterIe(); 18 | virtual ~CounterIe(); 19 | 20 | bool encodeCounterIe(MsgBuffer &buffer, 21 | CounterIeData const &data); 22 | bool decodeCounterIe(MsgBuffer &buffer, 23 | CounterIeData &data, Uint16 length); 24 | void displayCounterIe_v(CounterIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* COUNTERIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/csgInformationReportingActionIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * csgInformationReportingActionIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef CSGINFORMATIONREPORTINGACTIONIE_H_ 9 | #define CSGINFORMATIONREPORTINGACTIONIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class CsgInformationReportingActionIe: public GtpV2Ie { 16 | public: 17 | CsgInformationReportingActionIe(); 18 | virtual ~CsgInformationReportingActionIe(); 19 | 20 | bool encodeCsgInformationReportingActionIe(MsgBuffer &buffer, 21 | CsgInformationReportingActionIeData const &data); 22 | bool decodeCsgInformationReportingActionIe(MsgBuffer &buffer, 23 | CsgInformationReportingActionIeData &data, Uint16 length); 24 | void displayCsgInformationReportingActionIe_v(CsgInformationReportingActionIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* CSGINFORMATIONREPORTINGACTIONIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/delayValueIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * delayValueIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef DELAYVALUEIE_H_ 9 | #define DELAYVALUEIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class DelayValueIe: public GtpV2Ie { 16 | public: 17 | DelayValueIe(); 18 | virtual ~DelayValueIe(); 19 | 20 | bool encodeDelayValueIe(MsgBuffer &buffer, 21 | DelayValueIeData const &data); 22 | bool decodeDelayValueIe(MsgBuffer &buffer, 23 | DelayValueIeData &data, Uint16 length); 24 | void displayDelayValueIe_v(DelayValueIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* DELAYVALUEIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/ebiIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ebiIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef EBIIE_H_ 9 | #define EBIIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class EbiIe: public GtpV2Ie { 16 | public: 17 | EbiIe(); 18 | virtual ~EbiIe(); 19 | 20 | bool encodeEbiIe(MsgBuffer &buffer, 21 | EbiIeData const &data); 22 | bool decodeEbiIe(MsgBuffer &buffer, 23 | EbiIeData &data, Uint16 length); 24 | void displayEbiIe_v(EbiIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* EBIIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/epcTimerIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * epcTimerIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef EPCTIMERIE_H_ 9 | #define EPCTIMERIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class EpcTimerIe: public GtpV2Ie { 16 | public: 17 | EpcTimerIe(); 18 | virtual ~EpcTimerIe(); 19 | 20 | bool encodeEpcTimerIe(MsgBuffer &buffer, 21 | EpcTimerIeData const &data); 22 | bool decodeEpcTimerIe(MsgBuffer &buffer, 23 | EpcTimerIeData &data, Uint16 length); 24 | void displayEpcTimerIe_v(EpcTimerIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* EPCTIMERIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/epcoIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * epcoIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef EPCOIE_H_ 9 | #define EPCOIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class EpcoIe: public GtpV2Ie { 16 | public: 17 | EpcoIe(); 18 | virtual ~EpcoIe(); 19 | 20 | bool encodeEpcoIe(MsgBuffer &buffer, 21 | EpcoIeData const &data); 22 | bool decodeEpcoIe(MsgBuffer &buffer, 23 | EpcoIeData &data, Uint16 length); 24 | void displayEpcoIe_v(EpcoIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* EPCOIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/fContainerIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * fContainerIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef FCONTAINERIE_H_ 9 | #define FCONTAINERIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class FContainerIe: public GtpV2Ie { 16 | public: 17 | FContainerIe(); 18 | virtual ~FContainerIe(); 19 | 20 | bool encodeFContainerIe(MsgBuffer &buffer, 21 | FContainerIeData const &data); 22 | bool decodeFContainerIe(MsgBuffer &buffer, 23 | FContainerIeData &data, Uint16 length); 24 | void displayFContainerIe_v(FContainerIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* FCONTAINERIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/fTeidIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * fTeidIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef FTEIDIE_H_ 9 | #define FTEIDIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class FTeidIe: public GtpV2Ie { 16 | public: 17 | FTeidIe(); 18 | virtual ~FTeidIe(); 19 | 20 | bool encodeFTeidIe(MsgBuffer &buffer, 21 | FTeidIeData const &data); 22 | bool decodeFTeidIe(MsgBuffer &buffer, 23 | FTeidIeData &data, Uint16 length); 24 | void displayFTeidIe_v(FTeidIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* FTEIDIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/fqCsidIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * fqCsidIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef FQCSIDIE_H_ 9 | #define FQCSIDIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class FqCsidIe: public GtpV2Ie { 16 | public: 17 | FqCsidIe(); 18 | virtual ~FqCsidIe(); 19 | 20 | bool encodeFqCsidIe(MsgBuffer &buffer, 21 | FqCsidIeData const &data); 22 | bool decodeFqCsidIe(MsgBuffer &buffer, 23 | FqCsidIeData &data, Uint16 length); 24 | void displayFqCsidIe_v(FqCsidIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* FQCSIDIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/fqdnIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * fqdnIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef FQDNIE_H_ 9 | #define FQDNIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class FqdnIe: public GtpV2Ie { 16 | public: 17 | FqdnIe(); 18 | virtual ~FqdnIe(); 19 | 20 | bool encodeFqdnIe(MsgBuffer &buffer, 21 | FqdnIeData const &data); 22 | bool decodeFqdnIe(MsgBuffer &buffer, 23 | FqdnIeData &data, Uint16 length); 24 | void displayFqdnIe_v(FqdnIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* FQDNIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/gtpV2IeFactory.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gtpV2IeFactory.h 3 | * 4 | * Created on: Jul 10, 2014 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef GTPV2IEFACTORY_H_ 9 | #define GTPV2IEFACTORY_H_ 10 | 11 | #include 12 | #include "manual/gtpV2Ie.h" 13 | 14 | class GtpV2IeFactory { 15 | public: 16 | GtpV2IeFactory(); 17 | virtual ~GtpV2IeFactory(); 18 | 19 | static GtpV2IeFactory& getInstance(); 20 | 21 | GtpV2Ie& getIeObject(Uint8 ieType); 22 | 23 | private: 24 | 25 | map ieObjectContainer; 26 | 27 | }; 28 | 29 | 30 | #endif /* GTPV2MSGFACTORY_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/henbInformationReportingIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * henbInformationReportingIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef HENBINFORMATIONREPORTINGIE_H_ 9 | #define HENBINFORMATIONREPORTINGIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class HenbInformationReportingIe: public GtpV2Ie { 16 | public: 17 | HenbInformationReportingIe(); 18 | virtual ~HenbInformationReportingIe(); 19 | 20 | bool encodeHenbInformationReportingIe(MsgBuffer &buffer, 21 | HenbInformationReportingIeData const &data); 22 | bool decodeHenbInformationReportingIe(MsgBuffer &buffer, 23 | HenbInformationReportingIeData &data, Uint16 length); 24 | void displayHenbInformationReportingIe_v(HenbInformationReportingIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* HENBINFORMATIONREPORTINGIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/imsiIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * imsiIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef IMSIIE_H_ 9 | #define IMSIIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class ImsiIe: public GtpV2Ie { 16 | public: 17 | ImsiIe(); 18 | virtual ~ImsiIe(); 19 | 20 | bool encodeImsiIe(MsgBuffer &buffer, 21 | ImsiIeData const &data); 22 | bool decodeImsiIe(MsgBuffer &buffer, 23 | ImsiIeData &data, Uint16 length); 24 | void displayImsiIe_v(ImsiIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* IMSIIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/indicationIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * indicationIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef INDICATIONIE_H_ 9 | #define INDICATIONIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class IndicationIe: public GtpV2Ie { 16 | public: 17 | IndicationIe(); 18 | virtual ~IndicationIe(); 19 | 20 | bool encodeIndicationIe(MsgBuffer &buffer, 21 | IndicationIeData const &data); 22 | bool decodeIndicationIe(MsgBuffer &buffer, 23 | IndicationIeData &data, Uint16 length); 24 | void displayIndicationIe_v(IndicationIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* INDICATIONIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/integerNumberIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * integerNumberIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef INTEGERNUMBERIE_H_ 9 | #define INTEGERNUMBERIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class IntegerNumberIe: public GtpV2Ie { 16 | public: 17 | IntegerNumberIe(); 18 | virtual ~IntegerNumberIe(); 19 | 20 | bool encodeIntegerNumberIe(MsgBuffer &buffer, 21 | IntegerNumberIeData const &data); 22 | bool decodeIntegerNumberIe(MsgBuffer &buffer, 23 | IntegerNumberIeData &data, Uint16 length); 24 | void displayIntegerNumberIe_v(IntegerNumberIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* INTEGERNUMBERIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/ip4cpIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ip4cpIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef IP4CPIE_H_ 9 | #define IP4CPIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class Ip4cpIe: public GtpV2Ie { 16 | public: 17 | Ip4cpIe(); 18 | virtual ~Ip4cpIe(); 19 | 20 | bool encodeIp4cpIe(MsgBuffer &buffer, 21 | Ip4cpIeData const &data); 22 | bool decodeIp4cpIe(MsgBuffer &buffer, 23 | Ip4cpIeData &data, Uint16 length); 24 | void displayIp4cpIe_v(Ip4cpIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* IP4CPIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/ipAddressIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ipAddressIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef IPADDRESSIE_H_ 9 | #define IPADDRESSIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class IpAddressIe: public GtpV2Ie { 16 | public: 17 | IpAddressIe(); 18 | virtual ~IpAddressIe(); 19 | 20 | bool encodeIpAddressIe(MsgBuffer &buffer, 21 | IpAddressIeData const &data); 22 | bool decodeIpAddressIe(MsgBuffer &buffer, 23 | IpAddressIeData &data, Uint16 length); 24 | void displayIpAddressIe_v(IpAddressIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* IPADDRESSIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/loadControlInformationIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * loadControlInformationIe.cpp 3 | * 4 | * Revisit header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef LOADCONTROLINFORMATIONIE_H_ 9 | #define LOADCONTROLINFORMATIONIE_H_ 10 | 11 | #include 12 | #include "manual/gtpV2Ie.h" 13 | #include "manual/gtpV2GroupedIe.h" 14 | #include "gtpV2DataTypes.h" 15 | 16 | class LoadControlInformationIe:public GtpV2Ie 17 | { 18 | public: 19 | LoadControlInformationIe (); 20 | virtual ~ LoadControlInformationIe (); 21 | 22 | GtpV2GroupedIe & getGroupedIe (Uint8 msgType, Uint8 instance); 23 | void insertGroupedIeObject (Uint8 msgType, Uint8 instance, 24 | GtpV2GroupedIe * grpIe_p); 25 | 26 | private: 27 | map < Uint16, GtpV2GroupedIe * >groupedIeObjectContainer; // map[msgType || instance] 28 | }; 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/localDistinguishedNameIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * localDistinguishedNameIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef LOCALDISTINGUISHEDNAMEIE_H_ 9 | #define LOCALDISTINGUISHEDNAMEIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class LocalDistinguishedNameIe: public GtpV2Ie { 16 | public: 17 | LocalDistinguishedNameIe(); 18 | virtual ~LocalDistinguishedNameIe(); 19 | 20 | bool encodeLocalDistinguishedNameIe(MsgBuffer &buffer, 21 | LocalDistinguishedNameIeData const &data); 22 | bool decodeLocalDistinguishedNameIe(MsgBuffer &buffer, 23 | LocalDistinguishedNameIeData &data, Uint16 length); 24 | void displayLocalDistinguishedNameIe_v(LocalDistinguishedNameIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* LOCALDISTINGUISHEDNAMEIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/manual/gtpV2DataTypes_Manual.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gtpV2DataTypes_Manual.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | 9 | #ifndef GTPV2DATATYPES_MANUAL_H_ 10 | #define GTPV2DATATYPES_MANUAL_H_ 11 | 12 | typedef struct 13 | { 14 | Uint8 length; 15 | Uint8 digits[16]; 16 | }DigitRegister; 17 | 18 | typedef struct 19 | { 20 | Uint16 length; 21 | Uint8 octets[16]; 22 | }OctetArraySmall; 23 | 24 | 25 | typedef struct 26 | { 27 | Uint16 length; 28 | Uint8 octets[64]; 29 | }OctetArrayMedium; 30 | 31 | typedef struct 32 | { 33 | Uint16 length; 34 | Uint8 octets[256]; 35 | }OctetArrayLarge; 36 | 37 | 38 | #endif /*GTPV2DATATYPES_MANUAL_H_*/ 39 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/manual/gtpV2GroupedIe.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * gtpV2GroupedIe.cpp 3 | * 4 | * Created on: Jul 14, 2014 5 | * Author: hariharanb 6 | */ 7 | 8 | #include "../../../gtpV2Codec/ieClasses/manual/gtpV2GroupedIe.h" 9 | 10 | GtpV2GroupedIe::GtpV2GroupedIe() { 11 | // TODO Auto-generated constructor stub 12 | 13 | } 14 | 15 | GtpV2GroupedIe::~GtpV2GroupedIe() { 16 | // TODO Auto-generated destructor stub 17 | } 18 | 19 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/manual/gtpV2GroupedIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gtpV2GroupedIe.h 3 | * 4 | * Created on: Jul 14, 2014 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef GTPV2GROUPEDIE_H_ 9 | #define GTPV2GROUPEDIE_H_ 10 | 11 | class GtpV2GroupedIe { 12 | public: 13 | GtpV2GroupedIe(); 14 | virtual ~GtpV2GroupedIe(); 15 | }; 16 | 17 | #endif /* GTPV2GROUPEDIE_H_ */ 18 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/manual/gtpV2Ie.h: -------------------------------------------------------------------------------- 1 | /* 2 | * GtpV2Ie.h 3 | * 4 | * Created on: Jul 4, 2014 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef GTPV2IE_H_ 9 | #define GTPV2IE_H_ 10 | 11 | #include "basicTypes.h" 12 | #include "msgBuffer.h" 13 | #include "../gtpV2IeDataTypes.h" 14 | 15 | #define IE_HEADER_SIZE 4 16 | 17 | typedef struct 18 | { 19 | Uint8 ieType; 20 | Uint16 length; 21 | Uint8 instance; 22 | }GtpV2IeHeader; 23 | 24 | class GtpV2Ie { 25 | public: 26 | GtpV2Ie(); 27 | virtual ~GtpV2Ie(); 28 | 29 | static void encodeGtpV2IeHeader(MsgBuffer &buffer, GtpV2IeHeader const &data); 30 | static void decodeGtpV2IeHeader(MsgBuffer &buffer, GtpV2IeHeader &data); 31 | static void reserveHeaderSpace(MsgBuffer &buffer); 32 | 33 | protected: 34 | Uint8 ieType; 35 | }; 36 | 37 | #endif /* GTPV2IE_H_ */ 38 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/mappedUeUsageTypeIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * mappedUeUsageTypeIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef MAPPEDUEUSAGETYPEIE_H_ 9 | #define MAPPEDUEUSAGETYPEIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class MappedUeUsageTypeIe: public GtpV2Ie { 16 | public: 17 | MappedUeUsageTypeIe(); 18 | virtual ~MappedUeUsageTypeIe(); 19 | 20 | bool encodeMappedUeUsageTypeIe(MsgBuffer &buffer, 21 | MappedUeUsageTypeIeData const &data); 22 | bool decodeMappedUeUsageTypeIe(MsgBuffer &buffer, 23 | MappedUeUsageTypeIeData &data, Uint16 length); 24 | void displayMappedUeUsageTypeIe_v(MappedUeUsageTypeIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* MAPPEDUEUSAGETYPEIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/maximumPacketLossRateIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * maximumPacketLossRateIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef MAXIMUMPACKETLOSSRATEIE_H_ 9 | #define MAXIMUMPACKETLOSSRATEIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class MaximumPacketLossRateIe: public GtpV2Ie { 16 | public: 17 | MaximumPacketLossRateIe(); 18 | virtual ~MaximumPacketLossRateIe(); 19 | 20 | bool encodeMaximumPacketLossRateIe(MsgBuffer &buffer, 21 | MaximumPacketLossRateIeData const &data); 22 | bool decodeMaximumPacketLossRateIe(MsgBuffer &buffer, 23 | MaximumPacketLossRateIeData &data, Uint16 length); 24 | void displayMaximumPacketLossRateIe_v(MaximumPacketLossRateIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* MAXIMUMPACKETLOSSRATEIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/meiIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * meiIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef MEIIE_H_ 9 | #define MEIIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class MeiIe: public GtpV2Ie { 16 | public: 17 | MeiIe(); 18 | virtual ~MeiIe(); 19 | 20 | bool encodeMeiIe(MsgBuffer &buffer, 21 | MeiIeData const &data); 22 | bool decodeMeiIe(MsgBuffer &buffer, 23 | MeiIeData &data, Uint16 length); 24 | void displayMeiIe_v(MeiIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* MEIIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/metricIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * metricIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef METRICIE_H_ 9 | #define METRICIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class MetricIe: public GtpV2Ie { 16 | public: 17 | MetricIe(); 18 | virtual ~MetricIe(); 19 | 20 | bool encodeMetricIe(MsgBuffer &buffer, 21 | MetricIeData const &data); 22 | bool decodeMetricIe(MsgBuffer &buffer, 23 | MetricIeData &data, Uint16 length); 24 | void displayMetricIe_v(MetricIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* METRICIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/millisecondTimeStampIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * millisecondTimeStampIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef MILLISECONDTIMESTAMPIE_H_ 9 | #define MILLISECONDTIMESTAMPIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class MillisecondTimeStampIe: public GtpV2Ie { 16 | public: 17 | MillisecondTimeStampIe(); 18 | virtual ~MillisecondTimeStampIe(); 19 | 20 | bool encodeMillisecondTimeStampIe(MsgBuffer &buffer, 21 | MillisecondTimeStampIeData const &data); 22 | bool decodeMillisecondTimeStampIe(MsgBuffer &buffer, 23 | MillisecondTimeStampIeData &data, Uint16 length); 24 | void displayMillisecondTimeStampIe_v(MillisecondTimeStampIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* MILLISECONDTIMESTAMPIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/msisdnIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * msisdnIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef MSISDNIE_H_ 9 | #define MSISDNIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class MsisdnIe: public GtpV2Ie { 16 | public: 17 | MsisdnIe(); 18 | virtual ~MsisdnIe(); 19 | 20 | bool encodeMsisdnIe(MsgBuffer &buffer, 21 | MsisdnIeData const &data); 22 | bool decodeMsisdnIe(MsgBuffer &buffer, 23 | MsisdnIeData &data, Uint16 length); 24 | void displayMsisdnIe_v(MsisdnIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* MSISDNIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/nodeIdentifierIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nodeIdentifierIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef NODEIDENTIFIERIE_H_ 9 | #define NODEIDENTIFIERIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class NodeIdentifierIe: public GtpV2Ie { 16 | public: 17 | NodeIdentifierIe(); 18 | virtual ~NodeIdentifierIe(); 19 | 20 | bool encodeNodeIdentifierIe(MsgBuffer &buffer, 21 | NodeIdentifierIeData const &data); 22 | bool decodeNodeIdentifierIe(MsgBuffer &buffer, 23 | NodeIdentifierIeData &data, Uint16 length); 24 | void displayNodeIdentifierIe_v(NodeIdentifierIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* NODEIDENTIFIERIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/nodeTypeIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * nodeTypeIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef NODETYPEIE_H_ 9 | #define NODETYPEIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class NodeTypeIe: public GtpV2Ie { 16 | public: 17 | NodeTypeIe(); 18 | virtual ~NodeTypeIe(); 19 | 20 | bool encodeNodeTypeIe(MsgBuffer &buffer, 21 | NodeTypeIeData const &data); 22 | bool decodeNodeTypeIe(MsgBuffer &buffer, 23 | NodeTypeIeData &data, Uint16 length); 24 | void displayNodeTypeIe_v(NodeTypeIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* NODETYPEIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/overloadControlInformationIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * overloadControlInformationIe.cpp 3 | * 4 | * Revisit header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef OVERLOADCONTROLINFORMATIONIE_H_ 9 | #define OVERLOADCONTROLINFORMATIONIE_H_ 10 | 11 | #include 12 | #include "manual/gtpV2Ie.h" 13 | #include "manual/gtpV2GroupedIe.h" 14 | #include "gtpV2DataTypes.h" 15 | 16 | class OverloadControlInformationIe:public GtpV2Ie 17 | { 18 | public: 19 | OverloadControlInformationIe (); 20 | virtual ~ OverloadControlInformationIe (); 21 | 22 | GtpV2GroupedIe & getGroupedIe (Uint8 msgType, Uint8 instance); 23 | void insertGroupedIeObject (Uint8 msgType, Uint8 instance, 24 | GtpV2GroupedIe * grpIe_p); 25 | 26 | private: 27 | map < Uint16, GtpV2GroupedIe * >groupedIeObjectContainer; // map[msgType || instance] 28 | }; 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/paaIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * paaIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef PAAIE_H_ 9 | #define PAAIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class PaaIe: public GtpV2Ie { 16 | public: 17 | PaaIe(); 18 | virtual ~PaaIe(); 19 | 20 | bool encodePaaIe(MsgBuffer &buffer, 21 | PaaIeData const &data); 22 | bool decodePaaIe(MsgBuffer &buffer, 23 | PaaIeData &data, Uint16 length); 24 | void displayPaaIe_v(PaaIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* PAAIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/pagingAndServiceInformationIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * pagingAndServiceInformationIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef PAGINGANDSERVICEINFORMATIONIE_H_ 9 | #define PAGINGANDSERVICEINFORMATIONIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class PagingAndServiceInformationIe: public GtpV2Ie { 16 | public: 17 | PagingAndServiceInformationIe(); 18 | virtual ~PagingAndServiceInformationIe(); 19 | 20 | bool encodePagingAndServiceInformationIe(MsgBuffer &buffer, 21 | PagingAndServiceInformationIeData const &data); 22 | bool decodePagingAndServiceInformationIe(MsgBuffer &buffer, 23 | PagingAndServiceInformationIeData &data, Uint16 length); 24 | void displayPagingAndServiceInformationIe_v(PagingAndServiceInformationIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* PAGINGANDSERVICEINFORMATIONIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/pcoIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * pcoIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef PCOIE_H_ 9 | #define PCOIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class PcoIe: public GtpV2Ie { 16 | public: 17 | PcoIe(); 18 | virtual ~PcoIe(); 19 | 20 | bool encodePcoIe(MsgBuffer &buffer, 21 | PcoIeData const &data); 22 | bool decodePcoIe(MsgBuffer &buffer, 23 | PcoIeData &data, Uint16 length); 24 | void displayPcoIe_v(PcoIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* PCOIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/pdnTypeIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * pdnTypeIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef PDNTYPEIE_H_ 9 | #define PDNTYPEIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class PdnTypeIe: public GtpV2Ie { 16 | public: 17 | PdnTypeIe(); 18 | virtual ~PdnTypeIe(); 19 | 20 | bool encodePdnTypeIe(MsgBuffer &buffer, 21 | PdnTypeIeData const &data); 22 | bool decodePdnTypeIe(MsgBuffer &buffer, 23 | PdnTypeIeData &data, Uint16 length); 24 | void displayPdnTypeIe_v(PdnTypeIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* PDNTYPEIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/portNumberIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * portNumberIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef PORTNUMBERIE_H_ 9 | #define PORTNUMBERIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class PortNumberIe: public GtpV2Ie { 16 | public: 17 | PortNumberIe(); 18 | virtual ~PortNumberIe(); 19 | 20 | bool encodePortNumberIe(MsgBuffer &buffer, 21 | PortNumberIeData const &data); 22 | bool decodePortNumberIe(MsgBuffer &buffer, 23 | PortNumberIeData &data, Uint16 length); 24 | void displayPortNumberIe_v(PortNumberIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* PORTNUMBERIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/presenceReportingAreaActionIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * presenceReportingAreaActionIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef PRESENCEREPORTINGAREAACTIONIE_H_ 9 | #define PRESENCEREPORTINGAREAACTIONIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class PresenceReportingAreaActionIe: public GtpV2Ie { 16 | public: 17 | PresenceReportingAreaActionIe(); 18 | virtual ~PresenceReportingAreaActionIe(); 19 | 20 | bool encodePresenceReportingAreaActionIe(MsgBuffer &buffer, 21 | PresenceReportingAreaActionIeData const &data); 22 | bool decodePresenceReportingAreaActionIe(MsgBuffer &buffer, 23 | PresenceReportingAreaActionIeData &data, Uint16 length); 24 | void displayPresenceReportingAreaActionIe_v(PresenceReportingAreaActionIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* PRESENCEREPORTINGAREAACTIONIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/ptiIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ptiIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef PTIIE_H_ 9 | #define PTIIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class PtiIe: public GtpV2Ie { 16 | public: 17 | PtiIe(); 18 | virtual ~PtiIe(); 19 | 20 | bool encodePtiIe(MsgBuffer &buffer, 21 | PtiIeData const &data); 22 | bool decodePtiIe(MsgBuffer &buffer, 23 | PtiIeData &data, Uint16 length); 24 | void displayPtiIe_v(PtiIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* PTIIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/ranNasCauseIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ranNasCauseIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef RANNASCAUSEIE_H_ 9 | #define RANNASCAUSEIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class RanNasCauseIe: public GtpV2Ie { 16 | public: 17 | RanNasCauseIe(); 18 | virtual ~RanNasCauseIe(); 19 | 20 | bool encodeRanNasCauseIe(MsgBuffer &buffer, 21 | RanNasCauseIeData const &data); 22 | bool decodeRanNasCauseIe(MsgBuffer &buffer, 23 | RanNasCauseIeData &data, Uint16 length); 24 | void displayRanNasCauseIe_v(RanNasCauseIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* RANNASCAUSEIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/ratTypeIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ratTypeIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef RATTYPEIE_H_ 9 | #define RATTYPEIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class RatTypeIe: public GtpV2Ie { 16 | public: 17 | RatTypeIe(); 18 | virtual ~RatTypeIe(); 19 | 20 | bool encodeRatTypeIe(MsgBuffer &buffer, 21 | RatTypeIeData const &data); 22 | bool decodeRatTypeIe(MsgBuffer &buffer, 23 | RatTypeIeData &data, Uint16 length); 24 | void displayRatTypeIe_v(RatTypeIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* RATTYPEIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/recoveryIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * recoveryIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef RECOVERYIE_H_ 9 | #define RECOVERYIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class RecoveryIe: public GtpV2Ie { 16 | public: 17 | RecoveryIe(); 18 | virtual ~RecoveryIe(); 19 | 20 | bool encodeRecoveryIe(MsgBuffer &buffer, 21 | RecoveryIeData const &data); 22 | bool decodeRecoveryIe(MsgBuffer &buffer, 23 | RecoveryIeData &data, Uint16 length); 24 | void displayRecoveryIe_v(RecoveryIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* RECOVERYIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/remoteUeContextIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * remoteUeContextIe.cpp 3 | * 4 | * Revisit header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef REMOTEUECONTEXTIE_H_ 9 | #define REMOTEUECONTEXTIE_H_ 10 | 11 | #include 12 | #include "manual/gtpV2Ie.h" 13 | #include "manual/gtpV2GroupedIe.h" 14 | #include "gtpV2DataTypes.h" 15 | 16 | class RemoteUeContextIe:public GtpV2Ie 17 | { 18 | public: 19 | RemoteUeContextIe (); 20 | virtual ~ RemoteUeContextIe (); 21 | 22 | GtpV2GroupedIe & getGroupedIe (Uint8 msgType, Uint8 instance); 23 | void insertGroupedIeObject (Uint8 msgType, Uint8 instance, 24 | GtpV2GroupedIe * grpIe_p); 25 | 26 | private: 27 | map < Uint16, GtpV2GroupedIe * >groupedIeObjectContainer; // map[msgType || instance] 28 | }; 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/remoteUeIpInformationIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * remoteUeIpInformationIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef REMOTEUEIPINFORMATIONIE_H_ 9 | #define REMOTEUEIPINFORMATIONIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class RemoteUeIpInformationIe: public GtpV2Ie { 16 | public: 17 | RemoteUeIpInformationIe(); 18 | virtual ~RemoteUeIpInformationIe(); 19 | 20 | bool encodeRemoteUeIpInformationIe(MsgBuffer &buffer, 21 | RemoteUeIpInformationIeData const &data); 22 | bool decodeRemoteUeIpInformationIe(MsgBuffer &buffer, 23 | RemoteUeIpInformationIeData &data, Uint16 length); 24 | void displayRemoteUeIpInformationIe_v(RemoteUeIpInformationIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* REMOTEUEIPINFORMATIONIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/remoteUserIdIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * remoteUserIdIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef REMOTEUSERIDIE_H_ 9 | #define REMOTEUSERIDIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class RemoteUserIdIe: public GtpV2Ie { 16 | public: 17 | RemoteUserIdIe(); 18 | virtual ~RemoteUserIdIe(); 19 | 20 | bool encodeRemoteUserIdIe(MsgBuffer &buffer, 21 | RemoteUserIdIeData const &data); 22 | bool decodeRemoteUserIdIe(MsgBuffer &buffer, 23 | RemoteUserIdIeData &data, Uint16 length); 24 | void displayRemoteUserIdIe_v(RemoteUserIdIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* REMOTEUSERIDIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/secondaryRatUsageDataReportIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * secondaryRatUsageDataReportIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef SECONDARYRATUSAGEDATAREPORTIE_H_ 9 | #define SECONDARYRATUSAGEDATAREPORTIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class SecondaryRatUsageDataReportIe: public GtpV2Ie { 16 | public: 17 | SecondaryRatUsageDataReportIe(); 18 | virtual ~SecondaryRatUsageDataReportIe(); 19 | 20 | bool encodeSecondaryRatUsageDataReportIe(MsgBuffer &buffer, 21 | SecondaryRatUsageDataReportIeData const &data); 22 | bool decodeSecondaryRatUsageDataReportIe(MsgBuffer &buffer, 23 | SecondaryRatUsageDataReportIeData &data, Uint16 length); 24 | void displaySecondaryRatUsageDataReportIe_v(SecondaryRatUsageDataReportIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* SECONDARYRATUSAGEDATAREPORTIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/selectionModeIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * selectionModeIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef SELECTIONMODEIE_H_ 9 | #define SELECTIONMODEIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class SelectionModeIe: public GtpV2Ie { 16 | public: 17 | SelectionModeIe(); 18 | virtual ~SelectionModeIe(); 19 | 20 | bool encodeSelectionModeIe(MsgBuffer &buffer, 21 | SelectionModeIeData const &data); 22 | bool decodeSelectionModeIe(MsgBuffer &buffer, 23 | SelectionModeIeData &data, Uint16 length); 24 | void displaySelectionModeIe_v(SelectionModeIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* SELECTIONMODEIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/sequenceNumberIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * sequenceNumberIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef SEQUENCENUMBERIE_H_ 9 | #define SEQUENCENUMBERIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class SequenceNumberIe: public GtpV2Ie { 16 | public: 17 | SequenceNumberIe(); 18 | virtual ~SequenceNumberIe(); 19 | 20 | bool encodeSequenceNumberIe(MsgBuffer &buffer, 21 | SequenceNumberIeData const &data); 22 | bool decodeSequenceNumberIe(MsgBuffer &buffer, 23 | SequenceNumberIeData &data, Uint16 length); 24 | void displaySequenceNumberIe_v(SequenceNumberIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* SEQUENCENUMBERIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/servingNetworkIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * servingNetworkIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef SERVINGNETWORKIE_H_ 9 | #define SERVINGNETWORKIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class ServingNetworkIe: public GtpV2Ie { 16 | public: 17 | ServingNetworkIe(); 18 | virtual ~ServingNetworkIe(); 19 | 20 | bool encodeServingNetworkIe(MsgBuffer &buffer, 21 | ServingNetworkIeData const &data); 22 | bool decodeServingNetworkIe(MsgBuffer &buffer, 23 | ServingNetworkIeData &data, Uint16 length); 24 | void displayServingNetworkIe_v(ServingNetworkIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* SERVINGNETWORKIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/servingPlmnRateControlIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * servingPlmnRateControlIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef SERVINGPLMNRATECONTROLIE_H_ 9 | #define SERVINGPLMNRATECONTROLIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class ServingPlmnRateControlIe: public GtpV2Ie { 16 | public: 17 | ServingPlmnRateControlIe(); 18 | virtual ~ServingPlmnRateControlIe(); 19 | 20 | bool encodeServingPlmnRateControlIe(MsgBuffer &buffer, 21 | ServingPlmnRateControlIeData const &data); 22 | bool decodeServingPlmnRateControlIe(MsgBuffer &buffer, 23 | ServingPlmnRateControlIeData &data, Uint16 length); 24 | void displayServingPlmnRateControlIe_v(ServingPlmnRateControlIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* SERVINGPLMNRATECONTROLIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/signallingPriorityIndicationIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * signallingPriorityIndicationIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef SIGNALLINGPRIORITYINDICATIONIE_H_ 9 | #define SIGNALLINGPRIORITYINDICATIONIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class SignallingPriorityIndicationIe: public GtpV2Ie { 16 | public: 17 | SignallingPriorityIndicationIe(); 18 | virtual ~SignallingPriorityIndicationIe(); 19 | 20 | bool encodeSignallingPriorityIndicationIe(MsgBuffer &buffer, 21 | SignallingPriorityIndicationIeData const &data); 22 | bool decodeSignallingPriorityIndicationIe(MsgBuffer &buffer, 23 | SignallingPriorityIndicationIeData &data, Uint16 length); 24 | void displaySignallingPriorityIndicationIe_v(SignallingPriorityIndicationIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* SIGNALLINGPRIORITYINDICATIONIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/throttlingIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * throttlingIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef THROTTLINGIE_H_ 9 | #define THROTTLINGIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class ThrottlingIe: public GtpV2Ie { 16 | public: 17 | ThrottlingIe(); 18 | virtual ~ThrottlingIe(); 19 | 20 | bool encodeThrottlingIe(MsgBuffer &buffer, 21 | ThrottlingIeData const &data); 22 | bool decodeThrottlingIe(MsgBuffer &buffer, 23 | ThrottlingIeData &data, Uint16 length); 24 | void displayThrottlingIe_v(ThrottlingIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* THROTTLINGIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/traceInformationIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * traceInformationIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef TRACEINFORMATIONIE_H_ 9 | #define TRACEINFORMATIONIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class TraceInformationIe: public GtpV2Ie { 16 | public: 17 | TraceInformationIe(); 18 | virtual ~TraceInformationIe(); 19 | 20 | bool encodeTraceInformationIe(MsgBuffer &buffer, 21 | TraceInformationIeData const &data); 22 | bool decodeTraceInformationIe(MsgBuffer &buffer, 23 | TraceInformationIeData &data, Uint16 length); 24 | void displayTraceInformationIe_v(TraceInformationIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* TRACEINFORMATIONIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/twanIdentifierIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * twanIdentifierIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef TWANIDENTIFIERIE_H_ 9 | #define TWANIDENTIFIERIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class TwanIdentifierIe: public GtpV2Ie { 16 | public: 17 | TwanIdentifierIe(); 18 | virtual ~TwanIdentifierIe(); 19 | 20 | bool encodeTwanIdentifierIe(MsgBuffer &buffer, 21 | TwanIdentifierIeData const &data); 22 | bool decodeTwanIdentifierIe(MsgBuffer &buffer, 23 | TwanIdentifierIeData &data, Uint16 length); 24 | void displayTwanIdentifierIe_v(TwanIdentifierIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* TWANIDENTIFIERIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/twanIdentifierTimestampIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * twanIdentifierTimestampIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef TWANIDENTIFIERTIMESTAMPIE_H_ 9 | #define TWANIDENTIFIERTIMESTAMPIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class TwanIdentifierTimestampIe: public GtpV2Ie { 16 | public: 17 | TwanIdentifierTimestampIe(); 18 | virtual ~TwanIdentifierTimestampIe(); 19 | 20 | bool encodeTwanIdentifierTimestampIe(MsgBuffer &buffer, 21 | TwanIdentifierTimestampIeData const &data); 22 | bool decodeTwanIdentifierTimestampIe(MsgBuffer &buffer, 23 | TwanIdentifierTimestampIeData &data, Uint16 length); 24 | void displayTwanIdentifierTimestampIe_v(TwanIdentifierTimestampIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* TWANIDENTIFIERTIMESTAMPIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/twmiIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * twmiIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef TWMIIE_H_ 9 | #define TWMIIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class TwmiIe: public GtpV2Ie { 16 | public: 17 | TwmiIe(); 18 | virtual ~TwmiIe(); 19 | 20 | bool encodeTwmiIe(MsgBuffer &buffer, 21 | TwmiIeData const &data); 22 | bool decodeTwmiIe(MsgBuffer &buffer, 23 | TwmiIeData &data, Uint16 length); 24 | void displayTwmiIe_v(TwmiIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* TWMIIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/uciIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * uciIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef UCIIE_H_ 9 | #define UCIIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class UciIe: public GtpV2Ie { 16 | public: 17 | UciIe(); 18 | virtual ~UciIe(); 19 | 20 | bool encodeUciIe(MsgBuffer &buffer, 21 | UciIeData const &data); 22 | bool decodeUciIe(MsgBuffer &buffer, 23 | UciIeData &data, Uint16 length); 24 | void displayUciIe_v(UciIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* UCIIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/ueTimeZoneIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ueTimeZoneIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef UETIMEZONEIE_H_ 9 | #define UETIMEZONEIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class UeTimeZoneIe: public GtpV2Ie { 16 | public: 17 | UeTimeZoneIe(); 18 | virtual ~UeTimeZoneIe(); 19 | 20 | bool encodeUeTimeZoneIe(MsgBuffer &buffer, 21 | UeTimeZoneIeData const &data); 22 | bool decodeUeTimeZoneIe(MsgBuffer &buffer, 23 | UeTimeZoneIeData &data, Uint16 length); 24 | void displayUeTimeZoneIe_v(UeTimeZoneIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* UETIMEZONEIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/uliIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * uliIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef ULIIE_H_ 9 | #define ULIIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class UliIe: public GtpV2Ie { 16 | public: 17 | UliIe(); 18 | virtual ~UliIe(); 19 | 20 | bool encodeUliIe(MsgBuffer &buffer, 21 | UliIeData const &data); 22 | bool decodeUliIe(MsgBuffer &buffer, 23 | UliIeData &data, Uint16 length); 24 | void displayUliIe_v(UliIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* ULIIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/uliTimestampIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * uliTimestampIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef ULITIMESTAMPIE_H_ 9 | #define ULITIMESTAMPIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class UliTimestampIe: public GtpV2Ie { 16 | public: 17 | UliTimestampIe(); 18 | virtual ~UliTimestampIe(); 19 | 20 | bool encodeUliTimestampIe(MsgBuffer &buffer, 21 | UliTimestampIeData const &data); 22 | bool decodeUliTimestampIe(MsgBuffer &buffer, 23 | UliTimestampIeData &data, Uint16 length); 24 | void displayUliTimestampIe_v(UliTimestampIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* ULITIMESTAMPIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/ieClasses/upFunctionSelectionIndicationFlagsIe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * upFunctionSelectionIndicationFlagsIe.h 3 | * 4 | * Revisit Header later 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef UPFUNCTIONSELECTIONINDICATIONFLAGSIE_H_ 9 | #define UPFUNCTIONSELECTIONINDICATIONFLAGSIE_H_ 10 | 11 | #include "manual/gtpV2Ie.h" 12 | 13 | 14 | 15 | class UpFunctionSelectionIndicationFlagsIe: public GtpV2Ie { 16 | public: 17 | UpFunctionSelectionIndicationFlagsIe(); 18 | virtual ~UpFunctionSelectionIndicationFlagsIe(); 19 | 20 | bool encodeUpFunctionSelectionIndicationFlagsIe(MsgBuffer &buffer, 21 | UpFunctionSelectionIndicationFlagsIeData const &data); 22 | bool decodeUpFunctionSelectionIndicationFlagsIe(MsgBuffer &buffer, 23 | UpFunctionSelectionIndicationFlagsIeData &data, Uint16 length); 24 | void displayUpFunctionSelectionIndicationFlagsIe_v(UpFunctionSelectionIndicationFlagsIeData const &data, 25 | Debug &stream); 26 | }; 27 | 28 | #endif /* UPFUNCTIONSELECTIONINDICATIONFLAGSIE_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/msgClasses/createBearerRequestMsg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * createBearerRequestMsg.h 3 | * 4 | * Revisit header later 5 | * Author: hariharanb 6 | */ 7 | #ifndef CREATEBEARERREQUESTMSG_H_ 8 | #define CREATEBEARERREQUESTMSG_H_ 9 | 10 | #include 11 | #include "manual/gtpV2Message.h" 12 | #include 13 | #include 14 | #include "gtpV2MsgDataTypes.h" 15 | 16 | 17 | class CreateBearerRequestMsg:public GtpV2Message 18 | { 19 | public: 20 | CreateBearerRequestMsg(); 21 | virtual ~CreateBearerRequestMsg(); 22 | bool encodeCreateBearerRequestMsg(MsgBuffer &buffer, CreateBearerRequestMsgData const &data); 23 | 24 | bool decodeCreateBearerRequestMsg (MsgBuffer &buffer, CreateBearerRequestMsgData& data, Uint16 length); 25 | 26 | void displayCreateBearerRequestMsgData_v(CreateBearerRequestMsgData const &data, Debug &stream); 27 | 28 | private: 29 | set mandatoryIeSet; 30 | }; 31 | 32 | #endif -------------------------------------------------------------------------------- /src/gtpV2Codec/msgClasses/createBearerResponseMsg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * createBearerResponseMsg.h 3 | * 4 | * Revisit header later 5 | * Author: hariharanb 6 | */ 7 | #ifndef CREATEBEARERRESPONSEMSG_H_ 8 | #define CREATEBEARERRESPONSEMSG_H_ 9 | 10 | #include 11 | #include "manual/gtpV2Message.h" 12 | #include 13 | #include 14 | #include "gtpV2MsgDataTypes.h" 15 | 16 | 17 | class CreateBearerResponseMsg:public GtpV2Message 18 | { 19 | public: 20 | CreateBearerResponseMsg(); 21 | virtual ~CreateBearerResponseMsg(); 22 | bool encodeCreateBearerResponseMsg(MsgBuffer &buffer, CreateBearerResponseMsgData const &data); 23 | 24 | bool decodeCreateBearerResponseMsg (MsgBuffer &buffer, CreateBearerResponseMsgData& data, Uint16 length); 25 | 26 | void displayCreateBearerResponseMsgData_v(CreateBearerResponseMsgData const &data, Debug &stream); 27 | 28 | private: 29 | set mandatoryIeSet; 30 | }; 31 | 32 | #endif -------------------------------------------------------------------------------- /src/gtpV2Codec/msgClasses/createSessionRequestMsg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * createSessionRequestMsg.h 3 | * 4 | * Revisit header later 5 | * Author: hariharanb 6 | */ 7 | #ifndef CREATESESSIONREQUESTMSG_H_ 8 | #define CREATESESSIONREQUESTMSG_H_ 9 | 10 | #include 11 | #include "manual/gtpV2Message.h" 12 | #include 13 | #include 14 | #include "gtpV2MsgDataTypes.h" 15 | 16 | 17 | class CreateSessionRequestMsg:public GtpV2Message 18 | { 19 | public: 20 | CreateSessionRequestMsg(); 21 | virtual ~CreateSessionRequestMsg(); 22 | bool encodeCreateSessionRequestMsg(MsgBuffer &buffer, CreateSessionRequestMsgData const &data); 23 | 24 | bool decodeCreateSessionRequestMsg (MsgBuffer &buffer, CreateSessionRequestMsgData& data, Uint16 length); 25 | 26 | void displayCreateSessionRequestMsgData_v(CreateSessionRequestMsgData const &data, Debug &stream); 27 | 28 | private: 29 | set mandatoryIeSet; 30 | }; 31 | 32 | #endif -------------------------------------------------------------------------------- /src/gtpV2Codec/msgClasses/createSessionResponseMsg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * createSessionResponseMsg.h 3 | * 4 | * Revisit header later 5 | * Author: hariharanb 6 | */ 7 | #ifndef CREATESESSIONRESPONSEMSG_H_ 8 | #define CREATESESSIONRESPONSEMSG_H_ 9 | 10 | #include 11 | #include "manual/gtpV2Message.h" 12 | #include 13 | #include 14 | #include "gtpV2MsgDataTypes.h" 15 | 16 | 17 | class CreateSessionResponseMsg:public GtpV2Message 18 | { 19 | public: 20 | CreateSessionResponseMsg(); 21 | virtual ~CreateSessionResponseMsg(); 22 | bool encodeCreateSessionResponseMsg(MsgBuffer &buffer, CreateSessionResponseMsgData const &data); 23 | 24 | bool decodeCreateSessionResponseMsg (MsgBuffer &buffer, CreateSessionResponseMsgData& data, Uint16 length); 25 | 26 | void displayCreateSessionResponseMsgData_v(CreateSessionResponseMsgData const &data, Debug &stream); 27 | 28 | private: 29 | set mandatoryIeSet; 30 | }; 31 | 32 | #endif -------------------------------------------------------------------------------- /src/gtpV2Codec/msgClasses/deleteBearerRequestMsg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * deleteBearerRequestMsg.h 3 | * 4 | * Revisit header later 5 | * Author: hariharanb 6 | */ 7 | #ifndef DELETEBEARERREQUESTMSG_H_ 8 | #define DELETEBEARERREQUESTMSG_H_ 9 | 10 | #include 11 | #include "manual/gtpV2Message.h" 12 | #include 13 | #include 14 | #include "gtpV2MsgDataTypes.h" 15 | 16 | 17 | class DeleteBearerRequestMsg:public GtpV2Message 18 | { 19 | public: 20 | DeleteBearerRequestMsg(); 21 | virtual ~DeleteBearerRequestMsg(); 22 | bool encodeDeleteBearerRequestMsg(MsgBuffer &buffer, DeleteBearerRequestMsgData const &data); 23 | 24 | bool decodeDeleteBearerRequestMsg (MsgBuffer &buffer, DeleteBearerRequestMsgData& data, Uint16 length); 25 | 26 | void displayDeleteBearerRequestMsgData_v(DeleteBearerRequestMsgData const &data, Debug &stream); 27 | 28 | private: 29 | set mandatoryIeSet; 30 | }; 31 | 32 | #endif -------------------------------------------------------------------------------- /src/gtpV2Codec/msgClasses/deleteBearerResponseMsg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * deleteBearerResponseMsg.h 3 | * 4 | * Revisit header later 5 | * Author: hariharanb 6 | */ 7 | #ifndef DELETEBEARERRESPONSEMSG_H_ 8 | #define DELETEBEARERRESPONSEMSG_H_ 9 | 10 | #include 11 | #include "manual/gtpV2Message.h" 12 | #include 13 | #include 14 | #include "gtpV2MsgDataTypes.h" 15 | 16 | 17 | class DeleteBearerResponseMsg:public GtpV2Message 18 | { 19 | public: 20 | DeleteBearerResponseMsg(); 21 | virtual ~DeleteBearerResponseMsg(); 22 | bool encodeDeleteBearerResponseMsg(MsgBuffer &buffer, DeleteBearerResponseMsgData const &data); 23 | 24 | bool decodeDeleteBearerResponseMsg (MsgBuffer &buffer, DeleteBearerResponseMsgData& data, Uint16 length); 25 | 26 | void displayDeleteBearerResponseMsgData_v(DeleteBearerResponseMsgData const &data, Debug &stream); 27 | 28 | private: 29 | set mandatoryIeSet; 30 | }; 31 | 32 | #endif -------------------------------------------------------------------------------- /src/gtpV2Codec/msgClasses/deleteSessionRequestMsg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * deleteSessionRequestMsg.h 3 | * 4 | * Revisit header later 5 | * Author: hariharanb 6 | */ 7 | #ifndef DELETESESSIONREQUESTMSG_H_ 8 | #define DELETESESSIONREQUESTMSG_H_ 9 | 10 | #include 11 | #include "manual/gtpV2Message.h" 12 | #include 13 | #include 14 | #include "gtpV2MsgDataTypes.h" 15 | 16 | 17 | class DeleteSessionRequestMsg:public GtpV2Message 18 | { 19 | public: 20 | DeleteSessionRequestMsg(); 21 | virtual ~DeleteSessionRequestMsg(); 22 | bool encodeDeleteSessionRequestMsg(MsgBuffer &buffer, DeleteSessionRequestMsgData const &data); 23 | 24 | bool decodeDeleteSessionRequestMsg (MsgBuffer &buffer, DeleteSessionRequestMsgData& data, Uint16 length); 25 | 26 | void displayDeleteSessionRequestMsgData_v(DeleteSessionRequestMsgData const &data, Debug &stream); 27 | 28 | private: 29 | set mandatoryIeSet; 30 | }; 31 | 32 | #endif -------------------------------------------------------------------------------- /src/gtpV2Codec/msgClasses/deleteSessionResponseMsg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * deleteSessionResponseMsg.h 3 | * 4 | * Revisit header later 5 | * Author: hariharanb 6 | */ 7 | #ifndef DELETESESSIONRESPONSEMSG_H_ 8 | #define DELETESESSIONRESPONSEMSG_H_ 9 | 10 | #include 11 | #include "manual/gtpV2Message.h" 12 | #include 13 | #include 14 | #include "gtpV2MsgDataTypes.h" 15 | 16 | 17 | class DeleteSessionResponseMsg:public GtpV2Message 18 | { 19 | public: 20 | DeleteSessionResponseMsg(); 21 | virtual ~DeleteSessionResponseMsg(); 22 | bool encodeDeleteSessionResponseMsg(MsgBuffer &buffer, DeleteSessionResponseMsgData const &data); 23 | 24 | bool decodeDeleteSessionResponseMsg (MsgBuffer &buffer, DeleteSessionResponseMsgData& data, Uint16 length); 25 | 26 | void displayDeleteSessionResponseMsgData_v(DeleteSessionResponseMsgData const &data, Debug &stream); 27 | 28 | private: 29 | set mandatoryIeSet; 30 | }; 31 | 32 | #endif -------------------------------------------------------------------------------- /src/gtpV2Codec/msgClasses/downlinkDataNotificationAcknowledgeMsg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * downlinkDataNotificationAcknowledgeMsg.h 3 | * 4 | * Revisit header later 5 | * Author: hariharanb 6 | */ 7 | #ifndef DOWNLINKDATANOTIFICATIONACKNOWLEDGEMSG_H_ 8 | #define DOWNLINKDATANOTIFICATIONACKNOWLEDGEMSG_H_ 9 | 10 | #include 11 | #include "manual/gtpV2Message.h" 12 | #include 13 | #include 14 | #include "gtpV2MsgDataTypes.h" 15 | 16 | 17 | class DownlinkDataNotificationAcknowledgeMsg:public GtpV2Message 18 | { 19 | public: 20 | DownlinkDataNotificationAcknowledgeMsg(); 21 | virtual ~DownlinkDataNotificationAcknowledgeMsg(); 22 | bool encodeDownlinkDataNotificationAcknowledgeMsg(MsgBuffer &buffer, DownlinkDataNotificationAcknowledgeMsgData const &data); 23 | 24 | bool decodeDownlinkDataNotificationAcknowledgeMsg (MsgBuffer &buffer, DownlinkDataNotificationAcknowledgeMsgData& data, Uint16 length); 25 | 26 | void displayDownlinkDataNotificationAcknowledgeMsgData_v(DownlinkDataNotificationAcknowledgeMsgData const &data, Debug &stream); 27 | 28 | private: 29 | set mandatoryIeSet; 30 | }; 31 | 32 | #endif -------------------------------------------------------------------------------- /src/gtpV2Codec/msgClasses/downlinkDataNotificationMsg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * downlinkDataNotificationMsg.h 3 | * 4 | * Revisit header later 5 | * Author: hariharanb 6 | */ 7 | #ifndef DOWNLINKDATANOTIFICATIONMSG_H_ 8 | #define DOWNLINKDATANOTIFICATIONMSG_H_ 9 | 10 | #include 11 | #include "manual/gtpV2Message.h" 12 | #include 13 | #include 14 | #include "gtpV2MsgDataTypes.h" 15 | 16 | 17 | class DownlinkDataNotificationMsg:public GtpV2Message 18 | { 19 | public: 20 | DownlinkDataNotificationMsg(); 21 | virtual ~DownlinkDataNotificationMsg(); 22 | bool encodeDownlinkDataNotificationMsg(MsgBuffer &buffer, DownlinkDataNotificationMsgData const &data); 23 | 24 | bool decodeDownlinkDataNotificationMsg (MsgBuffer &buffer, DownlinkDataNotificationMsgData& data, Uint16 length); 25 | 26 | void displayDownlinkDataNotificationMsgData_v(DownlinkDataNotificationMsgData const &data, Debug &stream); 27 | 28 | private: 29 | set mandatoryIeSet; 30 | }; 31 | 32 | #endif -------------------------------------------------------------------------------- /src/gtpV2Codec/msgClasses/gtpV2MsgFactory.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gtpV2MsgFactory.h 3 | * 4 | * Created on: Jul 10, 2014 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef GTPV2MSGFACTORY_H_ 9 | #define GTPV2MSGFACTORY_H_ 10 | 11 | #include 12 | #include "manual/gtpV2Message.h" 13 | 14 | class GtpV2MsgFactory { 15 | public: 16 | GtpV2MsgFactory(); 17 | virtual ~GtpV2MsgFactory(); 18 | 19 | static GtpV2MsgFactory& getInstance(); 20 | GtpV2Message& getMsgObject(Uint8 msgType); 21 | 22 | private: 23 | 24 | map msgObjectContainer; 25 | 26 | }; 27 | 28 | 29 | #endif /* GTPV2MSGFACTORY_H_ */ -------------------------------------------------------------------------------- /src/gtpV2Codec/msgClasses/manual/gtpV2Message.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gtpV2Message.h 3 | * 4 | * Created on: Jul 11, 2014 5 | * Author: hariharanb 6 | */ 7 | 8 | #ifndef GTPV2MESSAGE_H_ 9 | #define GTPV2MESSAGE_H_ 10 | 11 | #include "basicTypes.h" 12 | #include "msgBuffer.h" 13 | #include "../../../gtpV2Codec/msgClasses/gtpV2MsgDataTypes.h" 14 | 15 | class GtpV2Message { 16 | public: 17 | GtpV2Message(); 18 | virtual ~GtpV2Message(); 19 | static void encodeHeader(MsgBuffer& buffer, GtpV2MessageHeader& msgHeader); 20 | static bool decodeHeader(MsgBuffer& buffer, GtpV2MessageHeader& msgHeader); 21 | 22 | protected: 23 | Uint8 msgType; 24 | }; 25 | 26 | #endif /* GTPV2MESSAGE_H_ */ 27 | 28 | -------------------------------------------------------------------------------- /src/gtpV2Codec/msgClasses/modifyBearerRequestMsg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * modifyBearerRequestMsg.h 3 | * 4 | * Revisit header later 5 | * Author: hariharanb 6 | */ 7 | #ifndef MODIFYBEARERREQUESTMSG_H_ 8 | #define MODIFYBEARERREQUESTMSG_H_ 9 | 10 | #include 11 | #include "manual/gtpV2Message.h" 12 | #include 13 | #include 14 | #include "gtpV2MsgDataTypes.h" 15 | 16 | 17 | class ModifyBearerRequestMsg:public GtpV2Message 18 | { 19 | public: 20 | ModifyBearerRequestMsg(); 21 | virtual ~ModifyBearerRequestMsg(); 22 | bool encodeModifyBearerRequestMsg(MsgBuffer &buffer, ModifyBearerRequestMsgData const &data); 23 | 24 | bool decodeModifyBearerRequestMsg (MsgBuffer &buffer, ModifyBearerRequestMsgData& data, Uint16 length); 25 | 26 | void displayModifyBearerRequestMsgData_v(ModifyBearerRequestMsgData const &data, Debug &stream); 27 | 28 | private: 29 | set mandatoryIeSet; 30 | }; 31 | 32 | #endif -------------------------------------------------------------------------------- /src/gtpV2Codec/msgClasses/modifyBearerResponseMsg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * modifyBearerResponseMsg.h 3 | * 4 | * Revisit header later 5 | * Author: hariharanb 6 | */ 7 | #ifndef MODIFYBEARERRESPONSEMSG_H_ 8 | #define MODIFYBEARERRESPONSEMSG_H_ 9 | 10 | #include 11 | #include "manual/gtpV2Message.h" 12 | #include 13 | #include 14 | #include "gtpV2MsgDataTypes.h" 15 | 16 | 17 | class ModifyBearerResponseMsg:public GtpV2Message 18 | { 19 | public: 20 | ModifyBearerResponseMsg(); 21 | virtual ~ModifyBearerResponseMsg(); 22 | bool encodeModifyBearerResponseMsg(MsgBuffer &buffer, ModifyBearerResponseMsgData const &data); 23 | 24 | bool decodeModifyBearerResponseMsg (MsgBuffer &buffer, ModifyBearerResponseMsgData& data, Uint16 length); 25 | 26 | void displayModifyBearerResponseMsgData_v(ModifyBearerResponseMsgData const &data, Debug &stream); 27 | 28 | private: 29 | set mandatoryIeSet; 30 | }; 31 | 32 | #endif -------------------------------------------------------------------------------- /src/gtpV2Codec/msgClasses/releaseAccessBearersRequestMsg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * releaseAccessBearersRequestMsg.h 3 | * 4 | * Revisit header later 5 | * Author: hariharanb 6 | */ 7 | #ifndef RELEASEACCESSBEARERSREQUESTMSG_H_ 8 | #define RELEASEACCESSBEARERSREQUESTMSG_H_ 9 | 10 | #include 11 | #include "manual/gtpV2Message.h" 12 | #include 13 | #include 14 | #include "gtpV2MsgDataTypes.h" 15 | 16 | 17 | class ReleaseAccessBearersRequestMsg:public GtpV2Message 18 | { 19 | public: 20 | ReleaseAccessBearersRequestMsg(); 21 | virtual ~ReleaseAccessBearersRequestMsg(); 22 | bool encodeReleaseAccessBearersRequestMsg(MsgBuffer &buffer, ReleaseAccessBearersRequestMsgData const &data); 23 | 24 | bool decodeReleaseAccessBearersRequestMsg (MsgBuffer &buffer, ReleaseAccessBearersRequestMsgData& data, Uint16 length); 25 | 26 | void displayReleaseAccessBearersRequestMsgData_v(ReleaseAccessBearersRequestMsgData const &data, Debug &stream); 27 | 28 | private: 29 | set mandatoryIeSet; 30 | }; 31 | 32 | #endif -------------------------------------------------------------------------------- /src/gtpV2Codec/msgClasses/releaseAccessBearersResponseMsg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * releaseAccessBearersResponseMsg.h 3 | * 4 | * Revisit header later 5 | * Author: hariharanb 6 | */ 7 | #ifndef RELEASEACCESSBEARERSRESPONSEMSG_H_ 8 | #define RELEASEACCESSBEARERSRESPONSEMSG_H_ 9 | 10 | #include 11 | #include "manual/gtpV2Message.h" 12 | #include 13 | #include 14 | #include "gtpV2MsgDataTypes.h" 15 | 16 | 17 | class ReleaseAccessBearersResponseMsg:public GtpV2Message 18 | { 19 | public: 20 | ReleaseAccessBearersResponseMsg(); 21 | virtual ~ReleaseAccessBearersResponseMsg(); 22 | bool encodeReleaseAccessBearersResponseMsg(MsgBuffer &buffer, ReleaseAccessBearersResponseMsgData const &data); 23 | 24 | bool decodeReleaseAccessBearersResponseMsg (MsgBuffer &buffer, ReleaseAccessBearersResponseMsgData& data, Uint16 length); 25 | 26 | void displayReleaseAccessBearersResponseMsgData_v(ReleaseAccessBearersResponseMsgData const &data, Debug &stream); 27 | 28 | private: 29 | set mandatoryIeSet; 30 | }; 31 | 32 | #endif -------------------------------------------------------------------------------- /src/mme-app/conf/mme.json: -------------------------------------------------------------------------------- 1 | { 2 | "mme": { 3 | "egtp_default_port": 2123, 4 | "ip_addr": "10.0.10.20", 5 | "s1ap_addr": "10.0.10.20", 6 | "egtp_addr": "10.1.10.22", 7 | "sctp_port": 36412, 8 | "name": "vmmestandalone", 9 | "egtp_default_hostname": "sutlej.ccin.ccpu.com", 10 | "group_id": 1, 11 | "code": 1, 12 | "__comment__": "Here is comment", 13 | "mcc": { 14 | "dig1": 2, 15 | "dig2": 0, 16 | "dig3": 8 17 | }, 18 | "mnc": { 19 | "dig1": 0, 20 | "dig2": 1, 21 | "dig3": -1 22 | }, 23 | "plmnlist": { 24 | "plmn1": "mcc=315,mnc=010", 25 | "plmn2": "mcc=208,mnc=01" 26 | } 27 | }, 28 | "enb": { 29 | "enb_addr": "10.0.10.1", 30 | "enb_port": "32767" 31 | }, 32 | "s11": { 33 | "sgw_addr": "10.1.10.20", 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 | } 42 | -------------------------------------------------------------------------------- /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/mme_state_machine.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 "s11.h" 12 | #include "s1ap.h" 13 | 14 | int 15 | start_mme() 16 | { 17 | /*Init communication with other task managers*/ 18 | while(1){ 19 | sleep(1); 20 | } 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 | # 7 | # SPDX-License-Identifier: Apache-2.0 8 | # 9 | 10 | export LD_LIBRARY_PATH=./lib 11 | echo "Start MME application" 12 | ./bin/mme-app & 13 | sleep 1 14 | ./bin/s1ap-app > /dev/null & 15 | sleep 1 16 | ./bin/s6a-app > /dev/null & 17 | sleep 1 18 | ./bin/s11-app > /dev/null & 19 | -------------------------------------------------------------------------------- /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 | # 8 | # SPDX-License-Identifier: Apache-2.0 9 | # 10 | 11 | echo "Killing MME application" 12 | killall -9 s1ap-app 13 | -------------------------------------------------------------------------------- /src/s11/conf/s11.json: -------------------------------------------------------------------------------- 1 | { 2 | "mme": { 3 | "ip_addr": "10.0.10.20", 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 | "egtp_default_hostname": "sutlej.ccin.ccpu.com" 23 | }, 24 | "s11": { 25 | "egtp_local_addr": "10.1.10.22", 26 | "egtp_default_port": 2123, 27 | "sgw_addr": "10.1.10.20", 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/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/openmme/181ee0a2a16fe4eea1b84986477f37d6ebbe55c3/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/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/openmme/181ee0a2a16fe4eea1b84986477f37d6ebbe55c3/src/s1ap/asn1c/asnGenFiles/libasncodec.a -------------------------------------------------------------------------------- /src/s1ap/asn1c/asnGenFiles/s1ap-converter: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/omec-project/openmme/181ee0a2a16fe4eea1b84986477f37d6ebbe55c3/src/s1ap/asn1c/asnGenFiles/s1ap-converter -------------------------------------------------------------------------------- /src/s1ap/conf/s1ap.json: -------------------------------------------------------------------------------- 1 | { 2 | "mme": { 3 | "ip_addr": "10.0.10.20", 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.2.10.20", 25 | "sctp_port": 36412, 26 | "egtp_default_hostname": "sutlej.ccin.ccpu.com" 27 | }, 28 | "s11": { 29 | "egtp_local_addr": "10.1.10.22", 30 | "egtp_default_port": 2123, 31 | "sgw_addr": "10.1.10.20", 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.license: -------------------------------------------------------------------------------- 1 | Copyright 2019-present Open Networking Foundation 2 | SPDX-License-Identifier: Apache-2.0 3 | -------------------------------------------------------------------------------- /src/s1ap/contextManager/s1apContextWrapper_c.cpp: -------------------------------------------------------------------------------- 1 | #include "s1apContextWrapper_c.h" 2 | #include "s1apContextWrapper.h" 3 | 4 | extern "C" 5 | { 6 | uint32_t createControlBlock() 7 | { 8 | return createControlBlock_cpp(); 9 | } 10 | 11 | uint32_t findControlBlockWithEnbId( 12 | uint32_t enbId) 13 | { 14 | return findControlBlockWithEnbId_cpp(enbId); 15 | } 16 | 17 | uint32_t findControlBlockWithEnbFd( 18 | uint32_t enbFd) 19 | { 20 | return findControlBlockWithEnbFd_cpp(enbFd); 21 | } 22 | 23 | uint32_t getEnbFdWithCbIndex(uint32_t cbIndex) 24 | { 25 | return getEnbFdWithCbIndex_cpp(cbIndex); 26 | } 27 | 28 | uint32_t setValuesForEnbCtx(uint32_t cbIndex, EnbStruct* enbCtx) 29 | { 30 | return setValuesForEnbCtx_cpp(cbIndex, enbCtx); 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /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/s6a.json: -------------------------------------------------------------------------------- 1 | { 2 | "mme": { 3 | "ip_addr": "10.0.10.20", 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 | "egtp_default_hostname": "sutlej.ccin.ccpu.com" 23 | }, 24 | "s11": { 25 | "egtp_local_addr": "10.1.10.22", 26 | "egtp_default_port": 2123, 27 | "sgw_addr": "10.1.10.20", 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,"\nContext ID - %d \n",contextID); 37 | } 38 | } 39 | 40 | --------------------------------------------------------------------------------